让我们从一个函数的简单typedef开始:
typedef std::function<uint32_t(SomeStruct *)> HandlerFunction;
这里有一个返回uint32_t并使用指向SomeStruct的指针的函数。
我想做的就是修改此函数,使其返回自身的类型,如下所示:
typedef std::function<HandlerFunction(SomeStruct *)> HandlerFunction;
显然不会编译,但这代表了我要实现的最终目标。
答案 0 :(得分:1)
我不知道如何使用std::function
来实现。
但是,此代码(改为使用函子)可在Visual Studio 2017中编译并运行:
struct SomeStruct {};
struct Func
{
Func operator()(SomeStruct*) { return *this; }
};
int main()
{
Func f;
Func f2 = f(nullptr);
}
答案 1 :(得分:0)
很遗憾,这是不可能的。但是,如果您的目标是实现有限状态机boost::statechart可能会帮助您