当前位置:  开发笔记 > 编程语言 > 正文

包装std :: ignore

如何解决《包装std::ignore》经验,为你挑选了1个好方法。

我正在开发一个自定义库.到目前为止,我已将std :: tuple和std :: tie包装到我自己的myOwn :: Tuple和myOwn :: tie中.它们的功能与std :: tuple和std :: tie相同.我想用std :: ignore做类似的事情.

到目前为止,我写了以下内容:

namespace myOwn
{
     auto
     tilde()
     -> decltype(std::ignore)
     {
         return std::ignore;
     }
}

我唯一的问题是我现在必须使用带圆括号的myOwn :: tilde().我希望能够将其用作myOwn :: tilde.到目前为止,我在std :: ignore上读到的只是如何使用它,

这里:std :: ignore的可能实现

这里:std :: ignore的要求

在这里:C++:使用std :: ignore返回std :: tie的类型

我试过用了

typedef std::ignore tilde

但这没有成功.任何帮助,将不胜感激.这个问题可能对试图包装对象的其他人有用.



1> Chaos..:

如果您不需要修改std::ignore,只想重命名,那么

decltype(std::ignore) &tilde = std::ignore;

在命名空间范围应该做你需要的.

std::ignore不保证是DefaultConstructibleCopyAssignable,因此它不能可移植地构建或复制,但我们可以保存对它的引用.这种类型tildedecltype(std::ignore) &,但由于std::tie引用,它应该起到相同的作用std::ignore.


或者`decltype(std :: ignore)&tilde = std :: ignore;`来创建一个别名而不是另一个副本.以上假设你可以构造`std :: ignore`的类型.
推荐阅读
php
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有