我有一些C ++代码,我只能通过更改头文件来改变。我有代码并可以编译它。
问题是我有一个像这样定义的函数指针(函数指针与我想做的事情无关):
foo.bar();
我想用宏或其他东西来改变:
#define foo.bar() FunCall()
据我所知,问题是在宏中不可能使用点,还有其他方法吗?
更多信息。我得到的代码旨在运行单个实例,但是我将包装代码以在类中运行多个实例。这让我有些头疼,我试图过来。
我尝试的是使用宏和一些内联函数或完整的第三种方式:
void function()
{
foo.bar();
}
我需要一些代码可以在上面等同于:
void class::function()
{
EventFuncTypedef f = foo.bar;
(this->*f)();
}
或者
void class::function()
{
class::FunCall();
}
上面的代码所有工作的问题是尝试获取原始代码执行的选项1或2。
答案 0 :(得分:0)
使用宏和帮助器:
struct FunCaller {
static auto bar() {FunCall();}
};
#define foo FunCaller{}