Wenn ich die Container
Anforderungen auf cppreference es Listen Destructible
als eine Voraussetzung für value_type
. Dies scheint zu implizieren, dass Destruktoren von Containerelementen nicht werfen können.Können die Elemente in einem std :: vector einen werbenden Destruktor haben?
Ich konnte nicht finden, ein Zitat für diese Anforderung in der C++ 14-Standard (nicht in älteren Versionen geschaut). Das einzige, was ich finden kann ist, dass value_type
Erasable
sein muss, was keine Ausnahmesicherheit impliziert.
Also meine Frage ist, können die Elemente in einem std::vector
einen Wurf Destruktor haben? Wenn nicht, welcher Abschnitt des Standards verbietet es?
S.S .: Keine Sorge, ich habe nicht vor, Typen mit Wurf-Destruktoren zu erstellen. Ich schreibe gerade eine standardkonforme Implementierung und versuche, die Ausnahmesicherheit richtig zu machen.
Tabelle 14 in der C++ 11 Standard sagt das gleiche, was Ihre cppreference von Destructible sagt: "keine Ausnahme wird propagiert". –
cppreference aktualisiert, um mit Tabelle 96 übereinzustimmen, tut mir leid, dass Ihre Frage veraltet ist – Cubbi
@TonyD Meine Frage geht nicht um Zerstörbar, es geht um 'std :: vector'. – orlp