次のようにイネーブラーを使用する場合、「未使用の関数パラメーターの除去の最適化」はありますか?
template< typename T >
void f(T x, typename std::enable_if< some_predicate< T > >::type * = nullptr) { /* do something useful with x */; }
?
つまり、パラメーターを渡すための追加のコードを生成しvoid *
ますか (たとえば、GCC 4.8 コンパイラー用)?
そして、lto/ltcg の存在に照らしてはどうですか?