V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
DinoStray
V2EX  ›  C++

C++ 函数指针赋值问题

  •  
  •   DinoStray · 2021-04-25 11:23:04 +08:00 · 1427 次点击
    这是一个创建于 1342 天前的主题,其中的信息可能已经有所发展或是发生改变。

    求教大佬们一个问题, 一个函数, 来自 libevent, 原型是这样

    int evhttp_set_cb(struct evhttp *http, const char *path,
        void (*cb)(struct evhttp_request *, void *), void *cb_arg);
    

    我自己的函数做了封装, 为啥 cb 这个参数, 传进去就报错呢, 如果传入 nullptr 就没问题

    void f(const std::string &path, void (*cb)(struct evhttp_request *, void *)) {
        evhttp_set_cb(EventHttp, path.c_str(), cb, nullptr);
    }
    
    第 1 条附言  ·  2021-04-25 13:54:36 +08:00
    No matching function for call to 'evhttp_set_cb'
    第 2 条附言  ·  2021-04-25 13:58:47 +08:00
    还没编译呢, 就是在 IDE 里写函数, 就直接报上面的错误了
    第 3 条附言  ·  2021-04-25 14:06:17 +08:00
    evhttp_set_cb 这个函数需要传入的类型是 void (*)(evhttp_request *, void *)
    我封装的 f 函数中参数也是 void (*)(evhttp_request *, void *), 不明白为啥 IDE 会提示错误呢
    第 4 条附言  ·  2021-04-25 14:08:39 +08:00
    不好意思确定了, 是 IDE 提示错误
    第 5 条附言  ·  2021-04-25 19:09:12 +08:00
    IDE 异常, 重启就好了
    iceheart
        1
    iceheart  
       2021-04-25 13:08:59 +08:00 via Android
    上 gdb 调试啊
    iamzuoxinyu
        2
    iamzuoxinyu  
       2021-04-25 13:18:23 +08:00 via Android
    报啥错你倒是贴出来啊。
    domodomo
        4
    domodomo  
       2021-04-25 13:29:32 +08:00
    你都不说你传了个啥进去,报了什么错,让大家猜吗?
    DinoStray
        5
    DinoStray  
    OP
       2021-04-25 13:55:58 +08:00
    @domodomo
    No matching function for call to 'evhttp_set_cb'
    DinoStray
        6
    DinoStray  
    OP
       2021-04-25 13:56:09 +08:00
    @iamzuoxinyu
    No matching function for call to 'evhttp_set_cb'
    DinoStray
        7
    DinoStray  
    OP
       2021-04-25 13:56:21 +08:00
    @iceheart
    No matching function for call to 'evhttp_set_cb'
    DinoStray
        8
    DinoStray  
    OP
       2021-04-25 13:57:11 +08:00
    @domodomo 没到编译阶段呢, 就是在 IDE 里直接提示报错了
    imjamespond2020
        9
    imjamespond2020  
       2021-04-25 18:44:41 +08:00 via Android
    reinterpret cast 一下指针类型?
    DinoStray
        10
    DinoStray  
    OP
       2021-04-25 19:08:54 +08:00
    @imjamespond2020 是 IDE 异常了, 重启一下就好了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5530 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 06:53 · PVG 14:53 · LAX 22:53 · JFK 01:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.