Wie deklarieren und verwenden Sie einen überladenen Pool-Operator delete?

8

Ich würde gerne wissen, wie man Abschnitt 11.14 der C ++ - FAQ-lite zu Arrays.

Im Grunde würde ich so etwas wollen:

%Vor%

Ich war jedoch nicht in der Lage, die richtige Syntax zu finden, um operator delete[] (pool) zu deklarieren und aufzurufen. Kann mir hier jemand helfen?

    
Tobias 24.02.2010, 00:03
quelle

2 Antworten

1

Es ist unmöglich. Bjarne ist der Ansicht, dass Sie nie den richtigen Pool finden werden. Seine Lösung ist: Sie müssen alle Destruktoren manuell aufrufen und dann den richtigen Pool ermitteln, um den Speicher manuell freigeben zu können.

Referenzen:

Bjarnes FAQ: Gibt es ein Placement löschen?

Relevante C ++ - Standardabschnitte:

3.7.3.2.2 Nur Löschoperationen für Member-Operatoren mit einem Argument vom Typ size_t werden für Löschausdrücke berücksichtigt.

5.3.5.1 Löschen der Ausdruckssyntax lässt keine zusätzlichen Parameter zu.

    
Tobias 24.02.2010, 14:25
quelle
2

Rufen Sie zuerst die dtors für die einzelnen Objekte auf und verwenden Sie dann:

%Vor%

Sie können den gesamten FAQ-Artikel erneut lesen und finden ihn dort.

    
dirkgently 24.02.2010 00:05
quelle