【发布时间】:2020-06-13 22:44:55
【问题描述】:
我希望运行以下代码:
class SignedSquareRoot {
public:
int operator()(int val) {
return val >= 0 ? sqrt(val) : -sqrt(-val);
};
}
所以我在课堂上写了以下内容:
声明:
template<class Function>
Matrix<T> apply(Function function);
实施:
template<class T, class Function>
Matrix<T> Matrix<T>::apply(Function function) {
Matrix<T> out = *this;
int size = this->size();
for (int i = 0; i < size; ++i) {
out.data[i] = function(out.data[i]);
}
return out;
}
但我收到很多错误,例如:
错误:模板重新声明中的模板参数过多 模板
注意:之前的模板声明在这里 模板
如何解决这个问题?
【问题讨论】:
标签: c++ class c++11 generics functor