C++ 11引入了一个名为的对象std::ignore:
const /* unspecified */ ignore;
Run Code Online (Sandbox Code Playgroud)
为简洁起见,让我们
typedef decltype(std::ignore) T;
Run Code Online (Sandbox Code Playgroud)
据我所知,由于[C++ 11,20.4.2.4:7] 的规范,唯一的要求T就是它.CopyAssignablestd::tie
在g ++ - 4.8中,我发现T另外DefaultConstructible(例如,T x;编译).这是实现定义的行为吗?
(如果T我有其他要求,请详细说明.)
我想知道C++ 11标准是否对某些参数的返回类型有任何要求.std::tuplestd::tiestd::ignore
更具体地说,我可以假设:
decltype(std::tie(42, std::ignore)) 是不一样的 decltype(std::tie(std::ignore, 42))decltype(std::tie(42, std::ignore)) 是不一样的 decltype(std::tie(42))decltype(std::tie(std::ignore, 42)) 是不一样的 decltype(std::tie(42))decltype(std::tie(std::ignore, std::ignore)) 是不一样的 decltype(std::tie(std::ignore))换句话说,从类型的角度来看,生成的元组是否表现为一个元组,它具有按位置decltype(std::ignore)匹配std::ignore的所有模板参数的类型?