C++11多元组类别

  多元组可被视为是 struct 其数据成员的一般化。底下是一个多元组类别的定义和使用情况:

  C++11多元组类别-LMLPHP

  我们可以定义一个多元组类别对象 proof 而不指定其内容,前提是 proof 里的元素其类别定义了默认构造函数 (default constructor)。此外,以一个多元组类别对象赋值给另一个多元组类别对象是可能的,但只有在以下情况: 若这两个多元组类别相同,则其内含的每一个元素其类别都要定义拷贝构造函数 (copy constructor); 否则的话,赋值操作符右边的多元组其内含元素的类别必须能转换成左边的多元组其对应的元素类别,又或者赋值操作符左边的多元组其内含元素的类别必须定义适当的构造函数。

  C++11多元组类别-LMLPHP

  多元组类型对象的比较运算是可行的(当它们拥有同样数量的元素)。此外,C++11 提供两个表达式用来检查多元组类型的一些特性 (仅在编译期做此检查)。  

    •   std::tuple_size<T>::value 回传多元组 T 内的元素个数,
    •   std::tuple_element<I, T>::type 回传多元组 T 内的第 I 个元素的类别

参考:http://zh.wikipedia.org/wiki/C++0x#.E5.A4.9A.E5.85.83.E7.B5.84.E5.9E.8B.E5.88.A5

05-11 09:39