AFAIK {}
定义了一个新的范围,那么这个定义是什么?什么是({});意味着在C++?
({});
的编译器编译该程序以及:
#include <iostream>
#include <string>
int main()
{
std::string name;
std::cout << "What is your name? ";
{
({});
}
getline (std::cin, name);
std::cout << "Hello, " << name << "!\n";
}
当我更换({});
与();
的编译器无法编译程序。
为什么({});
工作正常,但是();
不?
我已经测试了cpp.sh上的程序。它编译好。
看起来像一个编译器扩展给我。带有'-pednatic-errors'的GCC表示错误:ISO C++禁止在表达式中使用支撑组[-Wpedantic]'。 – HolyBlackCat
@HolyBlackCat我已经在http://cpp.sh/上测试了这个程序。它编译得很好 –
GCC默认启用了一些非标准扩展。 '-pedantic-errors'禁用它们。 '-pedantic'(或'-Wpedantic')使GCC在使用时会产生警告。 Cpp.sh有一个复选框来启用第二个。 – HolyBlackCat