【问题标题】:C++ Lambda causing 'candidate function not viable:' [duplicate]C ++ Lambda导致“候选函数不可行:” [重复]
【发布时间】:2016-01-12 05:02:45
【问题描述】:

为什么下面的 lambda 在添加捕获元素时不遵守签名?

[&callback](unsigned handle, void* userData, void* data, unsigned size) -> void { ... }

但这会吗?

[](unsigned handle, void* userData, void* data, unsigned size) -> void { ... }

签名:

typedef void (*em_async_wget2_data_onload_func)(unsigned, void*, void*, unsigned);

【问题讨论】:

    标签: c++ lambda emscripten


    【解决方案1】:

    不能简单地将带有捕获的 Lambda 转换为函数指针。为了获得最大的灵活性(但不是性能),请考虑使用std::function<void(unsigned,void*,void*,unsigned)>

    【讨论】:

      【解决方案2】:

      只有无捕获的lambdas 可以转换为指向函数的指针。

      【讨论】:

        猜你喜欢
        • 2021-12-31
        • 1970-01-01
        • 2019-08-19
        • 2020-07-30
        • 1970-01-01
        • 1970-01-01
        • 2018-10-27
        • 2010-10-31
        • 1970-01-01
        相关资源
        最近更新 更多