getA :: agetC :: f c只有返回c的函数返回一个带有c的函子。现在我有了这样的呼叫站点显然,当getC返回c的函子而不是c本身时,这是行不通的。所以唯一的办法似乎是除了在这里丢失对foo的简单调用之外,签名还会更改到callfoo :: f e。,我的一般问题是:如何处理大多数情况下我使用的是非函<e
如果您想在c++中的新线程中运行函子,您必须创建函子对象,然后将对它的引用传递给线程构造函数。这是可行的,但只剩下一个线程和函数式对象作为单独的东西。是否可能有一个拥有函子本身的线程,当在线程上调用join时,它会被清理掉吗?可能的API可能类似于thread<FunctorType>(args, for, functor),它将在线程类中创建函子对象,然后运行它。