std :: tuple_size <std :: array>的目的是什么?

Joh*_* Li 2 c++ stdarray

关于的帮助班std::tuple_size<std::array>,我有两个问题std::array

首先,类中有一个constexpr size()成员函数std::array,为什么需要一个std::tuple_size<std::array>

第二,这个名字是否tuple_size令人误解?

Que*_*tin 5

std::tuple_size(及其朋友std::tuple_elementstd::get)的设计目标不仅是在文字std::tuples 上工作,而且是在类似元组的任何东西上工作。类似于元组的东西通常仅表示它是包含固定数量的有序元素的复合类型。

你可以清楚地看到这种抽象在使用中通过查找,例如,如何构建绑定的定义:它们允许分解任何有理智的实现std::tuple_sizestd::tuple_elementget<I>

在这种“类似元组”的扩展概念下,只有std::array(和std::pair)将这些特征专门化为N个相同类型的元组(即大小为2的元组)才有意义。