c++ - `std::tuple_size 的目的是什么`
问题描述
我有两个关于std::tuple_size<std::array>
.std::array
首先,类中有一个 constexprsize()
成员函数std::array
,为什么需要std::tuple_size<std::array>
?
其次,名称是否tuple_size
具有误导性?
解决方案
std::tuple_size
(和它的朋友std::tuple_element
and )的设计目标std::get
是不仅适用于文字std::tuple
s,而且适用于任何类似元组的东西。类似元组的东西通常只是意味着它是一种包含固定数量的有序元素的复合类型。
例如,通过查看结构化绑定是如何定义的,您可以清楚地看到这种抽象的使用情况:它们允许分解任何具有 和 的合理实现std::tuple_size
的std::tuple_element
东西get<I>
。
在这种“类元组”的扩展概念下,只有std::array
(and std::pair
) 将这些特征专门化为 N 个相同类型的元组(分别是大小为 2 的元组)才有意义。
推荐阅读
- f# - F# interactive 不与输入交互
- javascript - Firebase auth Jest 测试
- android - Android 数据绑定:示例与现实
- php - 如何使用 MAMP 将我的 phpmyadmin 链接到我的 php?
- powershell - 通过 powershell true CSV 导入用户
- python - 如果标签内有其他html,如何从div标签中提取python中的文本?
- php - 获取PHP数组中属性值最高的对象
- mongodb - 如果 $unset 数组不存在,MongoDB 不会抛出
- android - JobSchedulerService 中的 RoomDB
- c# - 确定矩形的中心点并将新矩形移动到中心