SORU
13 Mayıs 2013, PAZARTESİ


Tip `bu` statik üye işlev?

C 5.1.1/3 [ifade.prim.genel] diyor ki:

Türü ve değeri kategori [this] statik bir üye işlev içinde tanımlanmış.

Bu ne anlama geliyor? Nasıl bir ilgisi var mı?

Not:

this statik üyesine bir işlev bildiriminde görünür olmayacaktır

CEVAP
13 Mayıs 2013, PAZARTESİ


Standart dil kusurları 1207 1017 için bir çözüm olan n3282, takip edilebilir. Özellikle, dil hatası için önerilen çözünürlük 1207, ve böylece arıza giderilmiş şu anda durdu gibi bu standart kapsamında düşünülmelidir görünür. O zaman oraya üye erişim ifadeler içine id-ifadelerin yeniden *this (9.3.kullanarak bazı endişeler vardı 1p3), firar-dönüş-tür bildirimleri (sayı 945) bağlamında özellikle.

Eğer standart n3282 nihai dili için ve daha sonra 1207 kusur önerilen çözünürlük karşılaştırırsak, 9.3 için önemli bir fark vardır.1p3:

Kusur 1207:

Bir kimliği ifade (5.1 [ifade.prim]) sınıf üyesi erişim sözdizimi bir parçası değildir (5.2.5 [ifade.ref]) ve bir işaretçi forma üye alışık değil (5.3.1 [ifade.tekli.op]) kullanılırüye Bildirgesi Sınıfı X işleviadı araması, (3.4 [temel.arama]) giderir adı

n3282 ve C 11:

Bir kimliği ifade (5.1 [ifade.prim]) sınıf üyesi erişim sözdizimi bir parçası değildir (5.2.5 [ifade.ref]) ve bir işaretçi forma üye alışık değil (5.3.1 [ifade.tekli.op]) kullanılırthis kullanılabilir bir bağlamda sınıf X (5.1.1 [ifade.prim.genel])adı araması, (3.4 [temel.arama]) adını çözer [...]

Bu belli ki, önerilen çözüm için kusur 1207 taşıdığı inanç kimliği-ifadeler (bir statik üye) içinde statik bir üye işlev için ne yapmalıyım? olmak dönüştürdü *this üye erişim ifadeler ve böylece gerek erişim tipi ve değeri kategori this. N3282 yazıldığı zaman bu nitelikli-kimlik dönüşümü (9.3.lehine çözülmüştüthis, gerektirmeyen 1p3) ama 5.1 dil.1p3 vestigially kaldı.

C standartları tartışma eklemek yükselterek bu sorunu tavsiye ederim; körelmiş dil editoryal görevden almak mümkün olabilir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • adrianisen

    adrianisen

    25 Kasım 2009
  • Digital Bounds

    Digital Boun

    19 Temmuz 2013
  • Dive In

    Dive In

    17 Temmuz 2013