相关疑难解决方法(0)

std :: ignore的要求

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++ language-lawyer c++11 stdtuple

14
推荐指数
2
解决办法
672
查看次数

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

我想知道C++ 11标准是否对某些参数的返回类型有任何要求.std::tuplestd::tiestd::ignore

更具体地说,我可以假设:

  1. decltype(std::tie(42, std::ignore)) 是不一样的 decltype(std::tie(std::ignore, 42))
  2. decltype(std::tie(42, std::ignore)) 是不一样的 decltype(std::tie(42))
  3. decltype(std::tie(std::ignore, 42)) 是不一样的 decltype(std::tie(42))
  4. decltype(std::tie(std::ignore, std::ignore)) 是不一样的 decltype(std::tie(std::ignore))

换句话说,从类型的角度来看,生成的元组是否表现为一个元组,它具有按位置decltype(std::ignore)匹配std::ignore的所有模板参数的类型?

c++ stl tuples undefined-behavior c++11

5
推荐指数
1
解决办法
788
查看次数