Dtor bei push_back?
-
Abend,
ich habe einen leeren Vektor std::vector<Adapter> adapters. Jetzt habe ich gerade verwundert festgestellt, dass beim 1. pushback in diesen Adapter der Destructor von Adapater aufgerufen wird.
Kann mir einer sagen, wieso bei einem push_back der Dtor aufgerufen wird??

-
Weil im Vector eine Kopie landet und das Original vermutlich (sicher können wir es nicht wissen, da Du das verheimlichst) temporär war und zerstört wird.
-
Unwahrscheinlich, da std::vector (wie jeder andere STL Kontainer) Kopien speichert. Das, was da zerstört wird ist wahrscheinlich ein Temporärobjekt, was du an
push_backweitergibst. Es liegt jedenfalls in Deiner Verantwortung.Ohne ein bissel Code kann man das aber schlecht diagnostizieren. Es hat wie gesagt nichts mit std::vector zu tun; denn der kopiert das Ding nur.
Gruß,
SP