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;
};
는 이제, 영업 이익은 2 개 ctor에 매개 변수의 ReturnTypes이다 스칼라/벡터의 다양한 조합에 대한 전체 템플릿 특성화와 구조 : 코드는 다음과 같다. 난 그냥
new BinaryOperator<op_adder>(a1, c2)
를 작성 좋아하고 축 및 상수 차감이있을 것이다 동안 내가 명시 적으로
new BinaryOperator<op_adder, Axis, Constant>(a1, c2)
작성해야합니다. 컴파일러 오류 :
too few template arguments for class template 'BinaryOperator'
어떤 사람이 도움이 될 수 있습니까? 내가 뭘 잘못하고 있니? 감사합니다. alex