C++ 包装标准::忽略
我在做一个定制图书馆。到目前为止,我已经将std::tuple和std::tie打包到我自己的myOwn::tuple和myOwn::tie中。它们的功能与std::tuple和std::tie相同。我想对std::ignore做一些类似的事情 到目前为止,我已经写了以下内容:C++ 包装标准::忽略,c++,c++11,stl,std,wrapper,C++,C++11,Stl,Std,Wrapper,我在做一个定制图书馆。到目前为止,我已经将std::tuple和std::tie打包到我自己的myOwn::tuple和myOwn::tie中。它们的功能与std::tuple和std::tie相同。我想对std::ignore做一些类似的事情 到目前为止,我已经写了以下内容: namespace myOwn { auto tilde() -> decltype(std::ignore) { return std::ignore;
namespace myOwn
{
auto
tilde()
-> decltype(std::ignore)
{
return std::ignore;
}
}
我唯一的问题是现在必须使用带括号的myOwn::tilde()。我希望能够将其用作myOwn::tilde。到目前为止,我在std::ignore上读到的只是如何使用它
在这里:
在这里:
在这里:
我试过使用
typedef std::ignore tilde
但这并不成功。任何帮助都将不胜感激。这个问题对任何试图包装对象的人都很有用。如果您不需要修改
std::ignore
,只想重命名它,那么
decltype(std::ignore) &tilde = std::ignore;
在命名空间范围内,应该执行您需要的操作
std::ignore
不保证是DefaultConstructible
或copysassignable
,因此它不能以可移植的方式构造或复制,但我们可以保存对它的引用。这个tilde
的类型是decltype(std::ignore)&
,但是由于std::tie
需要引用,如果您不需要修改std::ignore
,并且只想重命名它,那么它的功能应该与std::ignore
相同
decltype(std::ignore) &tilde = std::ignore;
在命名空间范围内,应该执行您需要的操作
std::ignore
不保证是DefaultConstructible
或copysassignable
,因此它不能以可移植的方式构造或复制,但我们可以保存对它的引用。这个tilde
的类型是decltype(std::ignore)&
,但是由于std::tie
需要引用,所以它的功能应该与std::ignore
相同?一个类型还是一个对象?你为什么要包装这些东西!?auto tilde=std::ignore是否存在问题代码>?你认为std::ignore
是什么?一个类型还是一个对象?你为什么要包装这些东西!?auto tilde=std::ignore是否存在问题代码>或decltype(std::ignore)&tilde=std::ignore
创建别名而不是另一个副本。以上假设std::ignore
的类型可以由您构造。@Yakk很好,我编辑了我的答案。你可能想用这个更正来做一个答案。这只是对上述答案的改进。修好这个,我就不必了!或者decltype(std::ignore)&tilde=std::ignore
创建别名而不是另一个副本。以上假设std::ignore
的类型可以由您构造。@Yakk很好,我编辑了我的答案。你可能想用这个更正来做一个答案。这只是对上述答案的改进。修好这个,我就不必了!