Sınıf { int i;} niye; tamamen standartlarla uyumlu değil mi?
Bu bir takip soru.
previous question, @JohannesSchaub-litb aşağıdaki kodu olduğunu söyledideğiltamamen standartlarla uyumlu:
class { int i; }; //unnamed-class definition. § 9/1 allows this!
ve sonra da sözlerine ekledi
dilbilgisi açısından geçerli olmakla birlikte, böyle bir sınıfı kapsayan kapsamı içine en az bir isim bildirmek zorunda olduğu kural kırıyor.
Bunu gerçekten anlayamadım. Adı ne hakkında konuşuyor?
Kimse bu konuda daha fazla (tercihen Standart alıntı) açıklayabilir mi?
CEVAP
Standart Madde 9 class {public: int i;}
(son bir virgül eksikliği not) bu, çünkü sağlardecl-belirtici-seqisimsiz bir sınıf için başka bir kullanılabilir bir typedef veya değişken bildirimi gibi inşa. class {public: int i;};
sorun (en sona noktalı virgül artık mevcut olduğunu unutmayın) bu sınıf belirtimi şimdi bir beyanla olur. Bu 7, standart paragraf 3 yan başına yasadışı bir bildirimi:
İsimsiz bir bit alanı (9.6) Bildirgesi hariç bu gibi durumlarda, ve,decl-belirtici-seqprogramın içine bir veya daha fazla isimleri takdim eder, ya da adı önceki bir bildirim tarafından sunulan redeclare eder.
Neden'ileri-ilan böyle bir ad ala...
Neden değil't Python'in __in...
uyarı: [seçenekler] bootstrap sınıf yo...
Neden java.açıklama.Gözlemlenebilen so...
Bu ne anlama geliyor? &;'NSUnknow...