aşağıdaki programı düşününFarklı davranış gerçekleştiren nitelikli ad arama
prog.cc:10:22: error: 'N' (aka 'int') is not a class, namespace, or
enumeration
std::cout << N::j << std::endl;
^1 error generated.
GCC herhangi derleyici hata vermez . Hata raporunu hangi derleyiciye vermem gerektiğini bulmaya çalışıyorum. Hangi derleyicinin doğru davranışı vardır ve neden (C++ standardına referanslar)?
Wandbox - Clang: http://melpon.org/wandbox/permlink/s0hKOxCFPgq5aSmJ
Wandbox - GCC: http://melpon.org/wandbox/permlink/i2kOl3qTBVUcJVbZ
Ancak "Ill Formed" programları, "tanımlanmamış davranış" gibi bir bit değildir, derleyici için mükemmel bir şekilde geçerlidir, a) bir hata vermez ve b) bir şekilde çalışan kodlar üretir. burnunu uçurun] (büyük değil dememeliyim, sadece, değil, teknik olarak, derleyici bir hata üretmek için yanlış değil) –
Teşekkürler! Bildirildi: https://gcc.gnu.org/bugzilla /show_bug.cgi?id=66900 – Supremum
@MatsPetersson Standart, "kötü biçimlendirilmiş" dediğinde gerekli bir tanılamayı ifade eder. Tanıya gerek duyulmadığında, genellikle "programın biçimlendirilmiş, teşhis gerektirmez" olduğunu söyler ve tanımlanmamış durumlarda "davranış tanımsızdır." – 0x499602D2