önemsiz vs standart düzeni vs POD
Uzun lafın kısası, önemsiz tip, standart düzeni türleri ve Bölmeleri arasındaki fark nedir?
Özellikle, new T
Herhangi bir ÅŸablon parametresi T
new T()
farklı olup olmadığını belirlemek istiyorum. Hangi tür özellikleri is_trivial
, is_standard_layout
is_pod
seçmeliyim?
Bu tür özelliklerin herhangi bir derleyici büyü olmadan uygulanabilir mi? (bir tarafta)
CEVAP
Gerçekten uzun lafın kısası, en azından olmadan yapılabilir sanmıyorumçokekstra açıklama. Bir önemli nokta dinamik başlatma vs statik, ama bir rahip olmayan kimse için bu açıklama kendi içinde birkaç sayfa
Bakla (yanlış)C 98 olarak belirlendi. Orada gerçekten iki ayrı niyet dahil, ne ifade çok iyi: 1) Eğer bir derleme C yapı bildirimi C , ne olmalıdır eşdeğer ne vardı C. 2) BİR BÖLME tek ihtiyacın/statik (dinamik) başlatma.
C 0 x/11 "" gösterimi (hemen hemen) tamamen, lehine "" ve "standart düzen". önemsiz POD damla Standart klavye düzeni C. alırsın aynı Önemsiz ... ... oluşturma Bir şey statik başlatma desteği yakalamak için tasarlanmıştır ilk hedefi yakalamak için tasarlanmıştır.
new T
vs new T()
baÅŸlatma ile ilgili olduÄŸundan,muhtemelenis_trivial
istiyorum.
Derleyici sihirli gerekli olma konusunda emin değilim. Benim hemen tepki muhtemelen Evet olurdu, ama insanlar TMP ile yapılan bazı şeyleri bilmek, zor zamanlar biri bunu yapamaz belli olmak da var
Edit: örnek için, belki de en iyisi N3290: örnekler alıntı
struct N { // neither trivial nor standard-layout
int i;
int j;
virtual ~N();
};
struct T { // trivial but not standard-layout
int i;
private:
int j;
};
struct SL { // standard-layout but not trivial
int i;
int j;
~SL();
};
struct POD { // both trivial and standard-layout
int i;
int j;
};
Şüphesiz tahmin, POD
de POD bir yapı olduğu gibi.
C 11 standart bellek modelini tanıttı....
Neden Standart girdiden okuma satır Py...
Nasıl Python standart girdiden okur mu...
Farklı bir renk ile standart Android D...
Standart bir fonksiyon JavaScript null...