带有非类型模板的模板类参数成员函数

时间:2013-08-22 15:29:54

标签: c++ templates template-specialization

我正在尝试定义一个包含非类型模板参数成员函数的模板类的特化。我收到以下错误:

error: too few template-parameter-lists

Here's a sample class that describes the problem in brief,
// file.h
template <typename T>
class ClassA {
  T Setup();
  template <int K> static void Execute();
};

//file.cc
void ClassA<int>::Execute<2>() { //Do stuff    }

我认为这更像是一个语法问题,而不是一个设计问题,任何线索?感谢

2 个答案:

答案 0 :(得分:5)

即使您完全专门化模板,仍然需要template<>

template<> template<> void ClassA<int>::Execute<2>() { //Do stuff    }

答案 1 :(得分:4)

您忘了告诉编译器您正在专门化模板类的模板方法:

template <>
template <>
void ClassA<int>::Execute<2>()
{
    //Do stuff
}