是否可以编写一个将自身作为类型返回的c std :: function?
发布时间:2020-12-16 07:24:10 所属栏目:百科 来源:网络整理
导读:参见英文答案 Recursive typedef function definition : std::function returning its own type????????????????????????????????????3个 让我们从函数的简单typedef开始: typedef std::functionuint32_t(SomeStruct *) HandlerFunction; 这里我们有一个返
参见英文答案 >
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); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |