加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

是否可以编写一个将自身作为类型返回的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);
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读