Default template arguments for function templatesを試す
November CTP of the C++ compilerのお試しの最後です。
Default template arguments for function templatesを使ってみます。
といっても「C++ Primer 第5版」のサンプルが簡単でわかりやすいのでそのまま入力です。
template <typename T, typename F = std::less<T>> int compare(const T &v1, const T &v2, F f = F()) { if(f(v1, v2)) return -1; if(f(v2, v1)) return 1; return 0; } int main() { int compResult = compare(0, 42); std::cout << comp << std::endl; return 0; }
これがVC++のNovember CTPでもコンパイルできるようになります。
VC++2012の標準のコンパイラですと
error C4519: 既定のテンプレートの引数をクラスのテンプレート以外で使用することはできません
というエラーになります。