C++ 多变量初始化编译器支持

C++ 多变量初始化编译器支持,c++,compiler-errors,initialization,C++,Compiler Errors,Initialization,在g++7.4下,我可以声明和初始化多个变量,如下所示: std::pair<T, T> foo(); int main () { auto [a, b] = foo(); } 1=>使用未声明的标识符“a” 2=>预期不合格id。这是一个C++17特性,称为 );事实上 问题是,你使用的是苹果叮当,而苹果叮当已经过时了。可能你的编译器太老了,或者你没有用C++ C++ 17的功能来实现你的GCC 7.4(其中C++ 17仍然是实验和选择)。它被称为结构化绑定声明,并被确认为

在g++7.4下,我可以声明和初始化多个变量,如下所示:

std::pair<T, T> foo();

int main ()
{  auto [a, b] = foo();  }
1=>使用未声明的标识符“a”


2=>预期不合格id。

这是一个C++17特性,称为

);事实上


问题是,你使用的是苹果叮当,而苹果叮当已经过时了。可能你的编译器太老了,或者你没有用C++ C++ 17的功能来实现你的GCC 7.4(其中C++ 17仍然是实验和选择)。它被称为结构化绑定声明,并被确认为C++ 17的编译器支持。如果你把答案贴出来,我会记下来。错误是什么?Clang 7支持结构化绑定。请回答您的问题或谢谢。我不知道不同的版本,自从我从cmake构建它以来,我已经启用了17个版本。由于声誉的原因,我不能对答案投赞成票。现在你可以了!;)
auto [a, b] = foo();
      ^1    ^2