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
Gevşek standart alıntı:
numeric_limits
-aritmetik standart olmayan türleri (örneğincomplex<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.
Eclipse - düzenleme alanında bir Görün...
Nasıl Ubuntu üzerinde Ruby 1.9 varsayı...
Nasıl iki dosya Eclipse kullanarak kar...
Nasıl AngularJS bir boolean dayalı ng-...
html5: nasıl kullanılır "gerekli&...