DinoStray
V2EX  ›  C++

C++ 函数指针赋值问题

  •  
  •   DinoStray · Apr 25, 2021 · 1940 views
    This topic created in 1850 days ago, the information mentioned may be changed or developed.

    求教大佬们一个问题, 一个函数, 来自 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);
    }
    
    Supplement 1  ·  Apr 25, 2021
    No matching function for call to 'evhttp_set_cb'
    Supplement 2  ·  Apr 25, 2021
    还没编译呢, 就是在 IDE 里写函数, 就直接报上面的错误了
    Supplement 3  ·  Apr 25, 2021
    evhttp_set_cb 这个函数需要传入的类型是 void (*)(evhttp_request *, void *)
    我封装的 f 函数中参数也是 void (*)(evhttp_request *, void *), 不明白为啥 IDE 会提示错误呢
    Supplement 4  ·  Apr 25, 2021
    不好意思确定了, 是 IDE 提示错误
    Supplement 5  ·  Apr 25, 2021
    IDE 异常, 重启就好了
    iceheart
        1
    iceheart  
       Apr 25, 2021 via Android
    上 gdb 调试啊
    iamzuoxinyu
        2
    iamzuoxinyu  
       Apr 25, 2021 via Android
    报啥错你倒是贴出来啊。
    domodomo
        4
    domodomo  
       Apr 25, 2021
    你都不说你传了个啥进去,报了什么错,让大家猜吗?
    DinoStray
        5
    DinoStray  
    OP
       Apr 25, 2021
    @domodomo
    No matching function for call to 'evhttp_set_cb'
    DinoStray
        6
    DinoStray  
    OP
       Apr 25, 2021
    @iamzuoxinyu
    No matching function for call to 'evhttp_set_cb'
    DinoStray
        7
    DinoStray  
    OP
       Apr 25, 2021
    @iceheart
    No matching function for call to 'evhttp_set_cb'
    DinoStray
        8
    DinoStray  
    OP
       Apr 25, 2021
    @domodomo 没到编译阶段呢, 就是在 IDE 里直接提示报错了
    imjamespond2020
        9
    imjamespond2020  
       Apr 25, 2021 via Android
    reinterpret cast 一下指针类型?
    DinoStray
        10
    DinoStray  
    OP
       Apr 25, 2021
    @imjamespond2020 是 IDE 异常了, 重启一下就好了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1110 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 48ms · UTC 22:57 · PVG 06:57 · LAX 15:57 · JFK 18:57
    ♥ Do have faith in what you're doing.