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)
不太清楚这意味着什么.
函数参数的声明使用了错误的语法.也许你打算这样写:
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)