相关疑难解决方法(0)

C++重载方法指针

如何获取指向方法的特定重载的方法指针:

struct A {
    void f();
    void f(int);
    void g();
};
Run Code Online (Sandbox Code Playgroud)

我知道

&A::g
Run Code Online (Sandbox Code Playgroud)

是一个指针g.但是如何获得指针ff(int)

c++

26
推荐指数
3
解决办法
7592
查看次数

使用std :: function时如何解决此<unresolved overloaded function type>错误?

在下面的(工作)代码示例中,模板化的register_enum()函数用于迭代枚举并调用用户提供的回调以将枚举值转换为c-string.所有枚举都在一个类中定义,枚举到字符串转换是使用静态to_cstring(enum)函数完成的.当一个类(如下面的着色器类)具有多个枚举和相应的重载to_cstring(enum)函数时,编译器无法确定哪个是正确的to_cstring()函数传递给register_enum().我认为代码解释得比我能好......

#include <functional>
#include <iostream>

// Actual code uses Lua, but for simplification
// I'll hide it in this example.
typedef void lua_State;

class widget
{
    public:
        enum class TYPE
        {
            BEGIN = 0,
            WINDOW = BEGIN,
            BUTTON,
            SCROLL,
            PROGRESS,
            END
        };

        static const char *to_cstring( const TYPE value )
        {
            switch ( value )
            {
                case TYPE::WINDOW: return "window";
                case TYPE::BUTTON: return "button";
                case TYPE::SCROLL: return "scroll";
                case TYPE::PROGRESS: return "progress";
                default: break;
            }
            return nullptr;
        }
};

class …
Run Code Online (Sandbox Code Playgroud)

c++ c++11

10
推荐指数
1
解决办法
2万
查看次数

标签 统计

c++ ×2

c++11 ×1