Frage zur Optimierung
-
Hi,
ich lese immer wieder, dass der Compiler viele Optimierungen vornimmt.
Optimiert er auch folgende Dinge.std::vector< Foo > v; v.push_back( Foo( /* ein Haufen Argumente */ ));Dabei wird ja erst ein Constructor für Foo aufgerufen und dann der
CopyConstructor für das interne Element. Optimiert der Compiler
soweit, dass er nur einmal den Constructor aufruft?Ich meine immer den G++ oder die neuste Version von VC++.
-
Warum probierst du's nicht einfach aus?
-
Mir und meinem gcc 4.1.2 ist grad langweilig
:struct test { test() { ++nConstructor; } static unsigned nConstructor; }; unsigned test::nConstructor = 0; int main() { vector<test> vtest; vtest.push_back(test()); cout << "Antwort: " << test::nConstructor << " mal" << endl; }Antwort: 1 mal
-
Na du musst aber auch noch den Copy-Constructor mitzaehlen :p
-
Badestrand schrieb:
Na du musst aber auch noch den Copy-Constructor mitzaehlen :p
:p 
Dann halt 2 mal

