反復回数またはその他の属性に基づいてループを展開するようにコンパイラーにどのように指示しますか?または、Visual Studio 2005でループ展開の最適化をどのようにオンにしますか?
編集:例:
//Code Snippet 1
vector<int> b;
for(int i=0;i<3;++i) b.push_back(i);
とは対照的に
//Code Snippet 2
vector<int> b;
b.push_back(0);
b.push_back(1);
b.push_back(2);
push_back()は一例ですが、これを長時間かかる可能性のあるものに置き換えることができます。
しかし、私はどこかでコード1を使用でき、ループがいくつかの基準を満たしている場合、コンパイラーはそれをコード2に展開できることを読みました。だから私の質問は:どうやってそれをするのですか?どちらがより効率的であるかについてはSOに関する議論がすでにありますが、それについてのコメントはとにかくありがたいです。