模板功能错误

sil*_*ent 0 c++ gcc templates class

我有一个函数,它接受一个名为"Triple"的类的参数,并返回float类型的3个值的averge.

template <typename ElemT>
float average(Triple ElemT<float> &arg){
    float pos1 = arg.getElem(1);
    float pos2 = arg.getElem(2);
    float pos3 = arg.getElem(3);

    return ( (pos1+pos2+po3) /3 );
}
Run Code Online (Sandbox Code Playgroud)

当我尝试编译这个我得到

q2b.cpp:32: error: template declaration of `float average'
q2b.cpp:32: error: missing template arguments before "ElemT"
Run Code Online (Sandbox Code Playgroud)

不太清楚这意味着什么.

sth*_*sth 5

函数参数的声明使用了错误的语法.也许你打算这样写:

template <typename ElemT>
float average(Triple<ElemT> &arg){
  ...
}
Run Code Online (Sandbox Code Playgroud)

或者,如果函数应该特定于三元组浮点数:

float average(Triple<float> &arg){
  ...
}
Run Code Online (Sandbox Code Playgroud)