我想以某种方式将这些模板合并为一个:
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; }
};
Run Code Online (Sandbox Code Playgroud)
(其次是Mul,Div等相同的代码),其中所有代码都是相同的,除了实际的"+"," - "(和"StupidAdd","StupidSub"等).
然后,这些愚蠢的"仿函数"被另一个模板使用.如何在没有预处理器的情况下避免重复?(我进入模板的原因是为了避免预处理器)
也就是说,如何将算术运算符传递给模板?