为什么通过唯一命名的变量和所有模糊的“名称绑定到”语言来定义结构化绑定?
我个人认为结构化绑定的工作方式如下。给定一个结构:
struct Bla
{
int i;
short& s;
double* d;
} bla;
以下:
cv-auto ref-operator [a, b, c] = bla;
(大致)相当于
cv-auto ref-operator a = bla.i;
cv-auto ref-operator b = bla.s;
cv-auto ref-operator c = bla.d;
以及数组和元组的等效扩展。但显然,这太简单了,而且所有这些模糊的特殊语言都用来描述需要发生的事情。
所以我显然遗漏了一些东西,但是在折叠表达式的意义上定义明确的扩展的确切情况是什么,在标准语言中阅读起来要简单得多?
似乎结构化绑定定义的变量的所有其他行为实际上都遵循我认为将用于定义概念的好像简单扩展“规则”。