【问题标题】:std::function<void()> constructor with std::bind带有 std::bind 的 std::function<void()> 构造函数
【发布时间】:2013-12-04 22:14:03
【问题描述】:
std::function<void()> f = std::function<void()>(std::bind(fn,params));

fn - LPVOID 类型,参数 - std::vector 我这里有一个错误。C2064:term 不计算为采用“数字”参数的函数。

这个错误出现在functional.h中!

我知道,我最好写一些类似的东西

auto f = std::bind(fn,params);

但我的任务是在 std::queue 中存储大量 func 指针。

如何将 std::bind() 转换为特定类型(或存储“自动”类型)?

【问题讨论】:

  • 第一个应该可以工作,但如果没有冗余类型会更好。
  • bind 的第一个参数需要是某种函数。 LPVOID 几乎不符合这个要求。
  • 可以发fn的声明吗?
  • 考虑存储一个 lambda 仿函数而不是 ::std::bind 仿函数。

标签: c++ function bind auto


【解决方案1】:

错误:术语不计算为采用“数字”参数的函数

错误消息可能是指您的参数fn,作为LPVOID,它根本不是一个函数。

【讨论】:

    猜你喜欢
    • 2019-02-20
    • 1970-01-01
    • 2014-01-22
    • 1970-01-01
    • 1970-01-01
    • 2016-12-18
    • 2013-04-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多