C++ 多变量初始化编译器支持
在g++7.4下,我可以声明和初始化多个变量,如下所示: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仍然是实验和选择)。它被称为结构化绑定声明,并被确认为
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