【发布时间】:2010-07-09 20:11:01
【问题描述】:
我没有获得部分模板专业化。 我的班级是这样的:
template<typename tVector, int A>
class DaubechiesWavelet : public AbstractWavelet<tVector> { // line 14
public:
static inline const tVector waveletCoeff() {
tVector result( 2*A );
tVector sc = scalingCoeff();
for(int i = 0; i < 2*A; ++i) {
result(i) = pow(-1, i) * sc(2*A - 1 - i);
}
return result;
}
static inline const tVector& scalingCoeff();
};
template<typename tVector>
inline const tVector& DaubechiesWavelet<tVector, 1>::scalingCoeff() { // line 30
return tVector({ 1, 1 });
}
gcc 输出的错误是:
line 30: error: invalid use of incomplete type ‘class numerics::wavelets::DaubechiesWavelet<tVector, 1>’
line 14: error: declaration of ‘class numerics::wavelets::DaubechiesWavelet<tVector, 1>’
我尝试了几种解决方案,但都没有奏效。 有人给我提示吗?
【问题讨论】:
-
result(i)?那不应该是result[i]吗? -
我用的是boost的ublas,所以你可以使用()操作符
标签: c++ templates partial-specialization