うーん...タイミングを含むようにコードを拡張しました:
#include <list>
#include <iostream>
#include <time.h>
#include <stdlib.h>
int main() {
std::list<double> items;
clock_t start = clock();
for(int i=0;i<10000000;i++){
items.push_back(rand());
}
clock_t finish = clock();
std::cout << "Time: " << double(finish-start)/CLOCKS_PER_SEC << "\n";
return 0;
}
以下を使用して VC++ でコンパイルしました。cl /O2b2 /GL test_list.cpp
同様に、以下を使用して g++ でコンパイルしました。g++ -O3 test_list.cpp
それから私は2つを実行しました。
VC++ で得たもの: Time: 1.293
.
g++ で得たもの: Time: 1.313
.
これは十分に小さな違いであり、VC++ が大幅に高速なコードを生成したと断言するには、さらに多くのテストを行う必要があると思いますが、VC++ が大幅に低速なコードを生成していないという結論を裏付けるには十分だと思います。
何かを意味するタイミング結果の最適化をオンにする必要があります。