5
考慮下面的例子:專業化模板函數
#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:我知道如果我移動main前面的函數定義會使錯誤消失。
+1爲第二個報價。我正在尋找那個。 – Nawaz 2011-05-06 14:32:05
是的,我正在尋找14.7.3。謝謝 – 2011-05-06 14:33:41