使用後のテンプレート関数の専門化は、コンピレーションを破壊します
-
29-10-2019 - |
質問
次の例を考えてみましょう:
#include <iostream>
template< int a >
void foo();
int main(int argn, char* argv[])
{
foo<1>();
}
template<>
void foo<1>()
{
std::cout<<1<<std::endl;
}
コンパイルは次のエラーメッセージで失敗します:
rg.cpp:12: error: specialization of ‘void foo() [with int a = 1]’ after instantiation
標準のどの段落がこのエラーを説明していますか?
PS:メインの前に関数定義を移動すると、エラーがなくなることを知っています。
正しい解決策はありません
所属していません StackOverflow