2
我有一个类应该被用来将运算符应用到标量或向量以及这两个类的混合。该类可以工作,但我必须手动传递模板参数,而我想他们被从构造函数中扣除。该代码是下面的:带策略的模板参数推导
template <template <class,class> class OP, typename Type1, typename Type2>
class BinaryOperator :
public OP <typename Type1::ReturnType, typename Type2::ReturnType> {
public:
BinaryOperator(Type1* arg1_, Type2* arg2_) :
m_arg1(arg1_),
m_arg2(arg2_) {
}
ReturnType evaluate() {
return this->apply(m_arg1->evaluate(), m_arg2->evaluate());
}
private:
Type1* m_arg1;
Type2* m_arg2;
};
现在,OP是具有完全模板特为属于2个构造函数参数的标量ReturnTypes /矢量的各种组合的结构。 我要明确
new BinaryOperator<op_adder, Axis, Constant>(a1, c2)
写,而我只想写
new BinaryOperator<op_adder>(a1, c2)
,并具有轴和恒扣除。编译器错误是:
too few template arguments for class template 'BinaryOperator'
能有人帮助?我做错了什么? 谢谢 alex