1
最新のC++コンパイラ(gcc
を含む)は、次の(マクロのような)コードを最適化しますか?例えばC++コンパイラの最適化
template<typename F, typename ...A>
err foo(F fn, A&&... args)
{
return fn(std::forward<A>(args)...) ? get_last_error() : err();
}
、それは次のコード
return foo(test, 5, 20, "bar");
を最適化することができます。それがあればGoogleに用語だ(「完璧なフォワーディング」と呼ばれているあなたが記述している
return test(5, 20, "bar") ? get_last_error() : err();
試してみてください! 'gcc -O2 -S'はあなたの友人です。 – zwol
最新のコンパイラがインライン展開できるかどうか尋ねています。 – ildjarn
はい。可変的なテンプレートパラメータで関数をインライン展開する。 –