私の知る限り{}
は、新しいスコープを定義し、これは何を定義していますか?({})は何ですか; 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.上のプログラムをテストしてきましたそれはうまくコンパイルされます。
私にはコンパイラの拡張機能のように見えます。 GCCの '-pednatic-errors'は' error:ISO C++は式[-Wpedantic] '内のブレースされたグループを禁止しています。 – HolyBlackCat
@HolyBlackCat http://cpp.sh/でプログラムをテストしました。それはうまくコンパイルされます –
GCCにはデフォルトでいくつかの非標準拡張が有効になっています。 '-pedantic-errors'はそれらを無効にします。 '-pedantic'(または' -Wpedantic')は、GCCが使用されたときに警告を生成させます。 Cpp.shには、2番目のチェックボックスを有効にするチェックボックスがあります。 – HolyBlackCat