结构绑定 (Structured Binding) 位于ISO/IEC14882:2017 11.5 节.
结构绑定的作用是方便从其它数据结构中提取数据, 如 pair, tuple, 数组等.
通过结构绑定, 可以替代 c++17 之前的 std::tie, 并且使用更加方便.
声明
通用的声明方式为
auto [v1, v2, ...., vn] = a_structure;
其中:
auto 后可以有 cv 限定符, 且可以为引用甚至若值引用, 如
auto, auto const, auto &, auto&&
{.cpp}.a_structure 可以是 pair, tuple, 数组, 结构或类. 若为结构或类时,
绑定的成员必须位于同一个结构或类中, 即不能部分位于父类部分部分子类,
且绑定的成员存取权限必须是公共的.a_structure 也可以是通过调用函数返回的 pair, tuple 等.
例子
绑定 pair, tuple
例 1
// 假如有一个函数