는 어떻게 든 하나에 이와 같은 템플릿을 병합 할 모든 코드가 동일, "+"실제 제외 (도난, 사업부 등의 동일한 코드 뒤에)산술 연산자를 템플릿에 전달하는 방법은 무엇입니까?
template <class Result, class T1, class T2>
class StupidAdd
{
public:
T1 _a; T2 _b;
StupidAdd(T1 a, T2 b):_a(a),_b(b) {}
Result operator()() { return _a+_b; }
};
template <class Result, class T1, class T2>
class StupidSub
{
public:
T1 _a; T2 _b;
StupidSub(T1 a, T2 b):_a(a),_b(b) {}
Result operator()() { return _a-_b; }
};
, "-"(그리고 "StupidAdd", "StupidSub"등).
다음이 바보 같은 "펑터"는 다른 템플릿에서 사용됩니다. 프리 프로세서없이 반복을 피하는 방법은 무엇입니까? (내가 템플릿에 들어간 이유는 전 처리기를 피하는 것이 었습니다)
즉, 어떻게 산술 연산자를 템플릿에 전달할 수 있습니까?
이러한 연산자에 과부하를 주려고 했습니까? 아니면이 예제입니까? – Jacob
나는 산술 연산자를 오버로딩하지 않을 것이다. 단지 템플릿처럼 그들을 전달할 수 있기를 원한다. 템플릿 <클래스 결과, 클래스 A, 클래스 B, 클래스 ArithOp> 결과 DoWork (A a, B b) {return ArithOp (a, b); } StupidAdd, StupidSub와 같은 어리석은 것들을 정의하지 않고 ... – OldCoder