C ++中带有模板返回类型的模板函数

时间:2010-10-14 00:02:55

标签: c++ templates

.h文件的相关部分:

template<class T, class W>
T inputValidate( T input, W minVal, W maxVal);

.cpp文件的相关部分:

T inputValidate( T input, W minVal, W maxVal)
{
  if (input < minVal || input > maxVal)
  {
    cout << "Invalid input! Try again: ";
    cin input;
  }

return input;
}

我收到错误“错误:'T'没有命名类型”

2 个答案:

答案 0 :(得分:3)

您需要在函数定义之前重复模板声明:

template<class T, class W>
T inputValidate( T input, W minVal, W maxVal)
{
  ...
}

答案 1 :(得分:1)

您必须将功能定义为:

template <class T, class W> T inputValidate(T input, W minVal, W maxVal) {

}