【发布时间】: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仿函数。