相关疑难解决方法(0)

如何指定指向重载函数的指针?

我想将重载函数传递给std::for_each()算法.例如,

class A {
    void f(char c);
    void f(int i);

    void scan(const std::string& s) {
        std::for_each(s.begin(), s.end(), f);
    }
};
Run Code Online (Sandbox Code Playgroud)

我期望编译器f()通过迭代器类型来解析.显然,它(GCC 4.1.2)没有这样做.那么,我该如何指定f()我想要的?

c++ stl

128
推荐指数
6
解决办法
3万
查看次数

获取重载静态函数的地址

可能重复:
如何指定指向重载函数的指针?

我有一个库,其类定义为:

struct ClassA
{
    static ClassA foo(long);
    static ClassA foo(double);
}
Run Code Online (Sandbox Code Playgroud)

我需要获取这两个函数的地址.我正在尝试的代码给出错误C2440:无法从'overloaded-function'转换为'...'

ns::ClassA (ns::ClassA::*ClassA_foo1)(long) = &ns::ClassA::foo;
ns::ClassA (ns::ClassA::*ClassA_foo2)(double) = &ns::ClassA::foo;
Run Code Online (Sandbox Code Playgroud)

我认为它们可能是静态的,但在返回类型之前或之后放置静态会产生相同的错误.

c++

5
推荐指数
1
解决办法
1026
查看次数

标签 统计

c++ ×2

stl ×1