当左侧是对数组成员的引用时,结构化绑定的正确语法是什么?
例如,以下程序无法编译:
#include <array>
std::array<int, 2> f()
{
return { 1, 2 };
}
int main()
{
std::array<int, 4> a;
a.fill(3);
auto [ a[1], a[2] ] = f();
}
给出错误
main.cpp: In function 'int main()':
main.cpp:12:13: error: expected ']' before '[' token
12 | auto [ a[1], a[2] ] = f();
如果结构化绑定写为
auto [ std::get<1>(a), std::get<2>(a) ] = f();