【问题标题】:Figure out return type of a functor C++11\Boost找出函子 C++11\Boost 的返回类型
【发布时间】:2024-04-23 06:35:02
【问题描述】:

我正在为 std::async 编写自己的实现,但遇到了一些困难。我有这样的签名:

template<class Fn>
Future<typename std::result_of<Fn>::type> runAsync(const Fn & task);

但是使用这个,我得到“错误 C2893:无法专门化函数模板”。找出函子的返回类型并正确初始化 Future 的好方法是什么?

【问题讨论】:

  • result_of&lt;Fn()&gt;result_of&lt;Fn(void)&gt;,也许?
  • 是的,它现在可以工作了。谢谢!

标签: c++ boost c++11 asynchronous


【解决方案1】:

你错过了()s。你可以这样做......

result_of&lt;Fn()&gt;

result_of&lt;Fn(void)&gt;

【讨论】: