相关疑难解决方法(0)

重载的成员函数指向模板的指针

我试图通过这样的模板存储成员函数指针:(这是我的真实代码的简化版本)

template<class Arg1>
void connect(void (T::*f)(Arg1)) 
{
    //Do some stuff
}

template<class Arg1>
void connect(void (T::*f)()) 
{
    //Do some stuff
}

class GApp
{
public:
    void foo() {}

    void foo(double d) {}
};
Run Code Online (Sandbox Code Playgroud)

然后我想对GApp中的每个重载方法执行以下操作:

connect(&GApp::foo); 
Run Code Online (Sandbox Code Playgroud)

打电话给这个foo()是好的,但我怎么称它为foo(double d)?以下为什么不工作?

connect((&GApp::foo)(double)); 
Run Code Online (Sandbox Code Playgroud)

它会给我

语法错误:'double'应以')'开头

我不明白这里必须使用的语法.这可能是一个愚蠢的问题,但任何人都可以帮助我吗?

c++ templates pointer-to-member

6
推荐指数
2
解决办法
5516
查看次数

标签 统计

c++ ×1

pointer-to-member ×1

templates ×1