SORU
14 Aralık 2011, ÇARŞAMBA


Ve std ad alanında uzmanım t'ne yapabilirim?

Kullanıcılar std ad açık uzmanlıklar eklemek için izin verilir. Ancak, açıkça uzmanlaşmış yasak ben birkaç şablonları vardır.

Şablonları ne olabilir ve ben uzmanlaşmak olabilir mi?

CEVAP
15 Aralık 2011, PERŞEMBE


Gevşek standart alıntı:

  • numeric_limits-aritmetik standart olmayan türleri (örneğin complex<T> özel olmayacaktır

  • "[S] shared_ptr pecializations CopyConstructible, CopyAssignable olacaktır, ve LessThanComparable [ve] bool. Cabrio"

  • "weak_ptr uzmanlık CopyConstructible ve CopyAssignable olacaktır."

  • "[T]uzmanlıklar [std::hash] emplate sınıf şablonu karma gereklerini yerine getirecektir."

  • <type_traits> bir şey: "sınıf şablonları bu bendi tanımlanan herhangi bir uzmanlık ekleyen bir program davranışını aksi belirtilmediği sürece tanımlı değil." (common_type sadece bazı uzmanlık açıkça izin verilir)

  • Bazı yerel ayarlargerekliuzmanlık.

  • istreambuf_iterator Tüm uzmanlık önemsiz Bir Kopya kurucu, constexpr bir varsayılan Kurucu ve önemsiz bir yıkıcı olacaktır.

  • "Sınıf, herhangi bir tür şamandıra dışında complex şablon başlatmasını, double ya da long double etkisi belirsiz." Diğer uzmanlık tanımlama anlamsız olduğu anlamına gelir.

  • "atomic şablon uzmanlık ve örneklemesi silinmiş bir kopya kurucu, silinmiş kopya atama operatör ve constexpr değer bir yapıcı olmalıdır."

  • "Sınıf unary_function binary_function onaylanmaz şablonları. Bir program bu şablonlar uzmanlıklar ilan edecektir."

Ve tabii ki kapsamlı fıkra 17.6.4.2.1, cümle 1 (teşekkürler @sehe ve @curiousguy):

C Bir programın davranış varsa tanımlamalar veya tanımlar veya bir std ad alanı ekler eğer tanımlı değil aksi belirtilmediği sürece ad std ad alanı içinde. Bir program bir şablonu uzmanlaşma ekleyebilirsiniz herhangi bir standart kütüphane şablonu eğer beyanname bağlıdır eğer sadece std ad alanı için kullanıcı tanımlı türü ve ihtisas orijinal şablon için standart kütüphane gereksinimleri karşılar ve açıkça değil yasak.

Ve cümle 2:

C Bir programın davranış olmadığını ilan etmesi halinde tanımsızdır

  • standart kütüphane sınıfı şablonu herhangi bir üye işlevi açık bir uzmanlık ya

  • standart kütüphane sınıfı veya sınıf şablonu herhangi bir üye işlev şablonu açık bir uzmanlık ya

  • standart kitaplık bir sınıf veya sınıf şablonu herhangi bir üye sınıf şablonu açık veya kısmi bir uzmanlık.

Bir program ilan sadece açıkça bir şablon standart kütüphanede tanımlı oluşturmak olabilir kullanıcı tanımlı bir tür adı ve örnekleme bağlıdır standart kütüphane gereksinimleri karşılar orijinal şablonu için.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Liz Morgan

    Liz Morgan

    4 Aralık 2011
  • pilslajt

    pilslajt

    20 HAZİRAN 2008
  • RFS Dan

    RFS Dan

    22 Temmuz 2014