我正在开发一个自定义库.到目前为止,我已将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
但这没有成功.任何帮助,将不胜感激.这个问题可能对试图包装对象的其他人有用.
如果您不需要修改std::ignore
,只想重命名,那么
decltype(std::ignore) &tilde = std::ignore;
在命名空间范围应该做你需要的.
std::ignore
不保证是DefaultConstructible
或CopyAssignable
,因此它不能可移植地构建或复制,但我们可以保存对它的引用.这种类型tilde
是decltype(std::ignore) &
,但由于std::tie
引用,它应该起到相同的作用std::ignore
.