参见英文答案 >
Recursive typedef function definition : std::function returning its own type 3个
让我们从函数的简单typedef开始:
typedef std::function<uint32_t(SomeStruct *)> HandlerFunction;
这里我们有一个返回uint32_t的函数,并获取指向SomeStruct的指针.
我想要做的是修改这个函数,使它返回一个自己的类型,如下所示:
typedef std::function<HandlerFunction(SomeStruct *)> HandlerFunction;
显然,这不会编译,但它代表了我正在努力实现的最终目标.
最佳答案 我不知道如何用std :: function实现这一点.
但是,此代码(使用仿函数)在Visual Studio 2017中编译并运行:
struct SomeStruct {};
struct Func
{
Func operator()(SomeStruct*) { return *this; }
};
int main()
{
Func f;
Func f2 = f(nullptr);
}