宏调用转递函数入参的检查
原始需求
有时候我们会写一个宏,调用时要求传入所有函数入参,制作者一般都会正常传入,但后续维护函数的人,可能新增了函数参数,忘记维护该宏调用,因此最好能在宏展开中检查是否传入所有函数参数,少传时报错。
实现方法
class ClassA { public: int Func(int a) { auto func = &ClassA::Func; decltype((this->*func)(a)) ; cout << __FUNCSIG__ << endl; return 0; } };
这样,如果Func 新增一个int* b = nullptr,而没有维护decltype 那行,就会编译错误。

浙公网安备 33010602011771号