宏调用转递函数入参的检查

原始需求

有时候我们会写一个宏,调用时要求传入所有函数入参,制作者一般都会正常传入,但后续维护函数的人,可能新增了函数参数,忘记维护该宏调用,因此最好能在宏展开中检查是否传入所有函数参数,少传时报错。

实现方法

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 那行,就会编译错误。

posted @ 2025-06-27 17:00  hchlqlz  阅读(8)  评论(0)    收藏  举报