【发布时间】:2019-05-24 12:38:28
【问题描述】:
在 g++ 7.4 下,我可以像这样声明和初始化多个变量:
std::pair<T, T> foo();
int main ()
{ auto [a, b] = foo(); }
但是在 Apple clang-703 下它给了我一个错误。
我在两个编译器中都找不到任何有关支持此功能的信息。现代编译器是否支持它或者我不应该使用它?还有这个功能的名称是什么?
编辑: 错误是:
auto [a, b] = foo();
^1 ^2
1 => 使用未声明的标识符“a”。
2 => 预期的不合格 ID。
【问题讨论】:
-
@bstract_Everything 它被称为结构化绑定声明,并且被确认为 C++ 17 的编译器支持。
-
@VladfromMoscow 好的,所以它是标准化的。如果您作为答案发布,我会标记它。
-
错误是什么? Clang 7 支持结构化绑定。
标签: c++ compiler-errors initialization