std::allocator::destroy(...) Problem



  • Hallo,

    ich arbeite z.Z. an einer eigenen allocator-Klasse.

    Ich habe die Klasse fertiggestellt und sie funktioniert wurderbar. Allerdings wird die Funktion destroy von einem vector (mit dem habe ich den allocator getestet) überhaupt nicht aufgerufen!
    Ich habe mir dann testweise die Aufrufe der Funktionen protokollieren lassen und bin zu dem gleichen Ergebnis gekommen.

    Wird die Funktion von einem vector einfach nicht genutzt, oder wo könnte das Problem liegen?

    Vielen Dank für Antworten! 🙂

    SALOMON


  • Mod

    destroy macht ja nichts weiter, als den Destruktor aufzurufen. Das hat nichts mit der eigentlichen Speicherverwaltung zu tun und kann folglich auch vom vector direkt durchgeführt werden. Also kein Problem, sondern nur eine Eigenart der speziellen Implementation, die du nutzt. construct ist ja auch nur von beschränkter Nützlichkeit. Beide Funktionen dürften der Bequemlichkeit wegen existieren. Oder anders gesagt: Der Standard schreibt nur vor, welche Funktionen ein Allokator bereitstellen muss, und nicht, dass ein Verwender des Allokators sie auch alle nutzt.



  • Danke!

    So was in der Art habe ich mir schon gedacht...

    SALOMON


Anmelden zum Antworten