このテンプレートのインスタンス化を試みていますが、うまくいきません。エラーが発生します:
prog.cpp:7:15: error: template-id 'f<const A&, A()>' for 'void f()' does not match any template declaration
template <class T, T> void f() {}
struct A {};
template void f<const A &, A()>();
int main() {}
メインで実行すると機能するため、これは奇妙です。
int main() {
const A &a = A(); // no error
}
では、なぜテンプレート行で機能しないのでしょうか?