" error: too few template-parameter-lists"는 신규 버젼 gnu cpp 컴파일러에서 발생하는 에러다.
이 문제는 템플릿 클래스의 static 멤버 변수를 초기화 할 때 발생하며, 해결을 template<>을 static 멤버 변수 초기화 코드 앞에 붙여 주어야 한다.
예를 들어 :
template <class T>
이 문제는 템플릿 클래스의 static 멤버 변수를 초기화 할 때 발생하며, 해결을 template<>을 static 멤버 변수 초기화 코드 앞에 붙여 주어야 한다.
예를 들어 :
template <class T>
class A { static int a; static const char * const name; };
와 같은 코드가 있다고 해보자. 예전에는 아래와 같이 써도 무방했다 :
int A::a = 0;하지만 위와 같은 코드는 CeePlusPlus 표준에 의해 이제는 더 이상 유효한 코드가 아니며 "" error: too few template-parameter-lists" 에러를 발생 한다.
const char * const A::name = NULL;
아래와 같이 수정하도록 한다 :
template<> int A<int>::a = 0; template<> const char * const A<int>::name = "example";ref.
Example code 2#include <iostream> template <int I> class B { public: static int b; }; template<> int B<1>::b = 1; template <int I> int B<I>::b = 0; int main() { std::cout << B<1>::b << std::endl; // 1 std::cout << B<2>::b << std::endl; // 0 return 0;}
Too Few Template Parameter Lists : http://www.c2.com/cgi/wiki?TooFewTemplateParameterLists