AFAIK {}
xác định phạm vi mới, vì vậy điều này xác định điều gì?Có gì ({}); Có nghĩa là trong C + +?
({});
Trình biên dịch biên dịch chương trình này cũng:
#include <iostream>
#include <string>
int main()
{
std::string name;
std::cout << "What is your name? ";
{
({});
}
getline (std::cin, name);
std::cout << "Hello, " << name << "!\n";
}
Khi tôi thay ({});
với ();
trình biên dịch không biên dịch chương trình.
Tại sao ({});
hoạt động tốt, nhưng ();
thì không?
Tôi đã thử nghiệm chương trình trên cpp.sh. Nó biên dịch tốt.
Trông giống như phần mở rộng trình biên dịch cho tôi. GCC với '-nút-lỗi' nói' lỗi: ISO C++ cấm các nhóm được đặt trong các biểu thức [-Wpedantic] '. – HolyBlackCat
@HolyBlackCat tôi đã thử nghiệm chương trình trên http://cpp.sh/. nó biên dịch tốt –
GCC có một số tiện ích mở rộng không chuẩn được bật theo mặc định. '-pedantic-errors' vô hiệu hóa chúng. '-pedantic' (hoặc' -Wpedantic') làm cho GCC tạo ra các cảnh báo khi chúng được sử dụng. Cpp.sh có một hộp kiểm để kích hoạt hộp thứ hai. – HolyBlackCat