Ich habe ein Objekt von einem Typ, zum Beispiel std::vector<int> v;
Nun sagen, ich möchte überprüfen, dass v
veröffentlicht alle seine internen Speicher.
Vor der C++ 11 shrink_to_fit()
Methode ist der empfohlene/garantierte Weg, dies zu tun swap()
mit einem leeren std::vector<>
des gleichen Typs.Erstellen eines temporären decltype
Ich möchte jedoch nicht den Typ des Objekts angeben. Ich kann decltype
verwenden, um die Art zu bestimmen, so möchte ich, so etwas schreiben:
std::vector<int> v;
// use v....
v.swap(decltype(v)()); // Create a temporary of same type as v and swap with it.
^^
jedoch oberhalb der Code funktioniert nicht. Ich kann nicht scheinen, ein temporäres vom Typ decltype(v)
mit einem leeren ctor (in diesem Fall) zu schaffen.
Gibt es eine andere Syntax für die Erstellung eines solchen temporären?
Die empfohlene Vorgehensweise ist 'shrink_to_fit'. – chris
@chris: Argh! Wahr. Ich habe diese Methode vergessen. Danke, ich bearbeite es neu, aber meine Frage ist immer noch gültig. –