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: 既定のテンプレートの引数をクラスのテンプレート以外で使用することはできません

というエラーになります。