小编Old*_*der的帖子

如何将算术运算符传递给模板?

我想以某种方式将这些模板合并为一个:

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"等).

然后,这些愚蠢的"仿函数"被另一个模板使用.如何在没有预处理器的情况下避免重复?(我进入模板的原因是为了避免预处理器)

也就是说,如何将算术运算符传递给模板?

c++ templates operators

4
推荐指数
1
解决办法
550
查看次数

标签 统计

c++ ×1

operators ×1

templates ×1