我经常使用这个宏来完美地转发参数,而不必知道参数的类型:
#define FORWARD(a) std::forward<decltype(a)>(a)
我现在想要摆脱宏,因此我正在寻找c ++中函数的等价定义,它可以与宏交替使用。
这可能是一个简单的例子,但是对于记录:我希望这样的代码能够使用Param{A,B}
的任意类型正确编译 - 而不必在任何地方使用扩展形式(如std::forward<decltype(a)>(a)
)。
decltype(auto) operator Op(ParamA a, ParamB b) {
return Forward(a) Op Forward(b);
}
提示:不是this question
的副本