Ve std ad alanında uzmanım t'ne yapabilirim? | Netgez.com
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

  • 24 Канал

    24 КанаÐ

    5 ÅžUBAT 2006
  • Adam Khoury

    Adam Khoury

    23 Ocak 2008
  • The Brister

    The Brister

    10 ÅžUBAT 2008