C ++ 20'de, POD kavramı, varsayılan ve önemsiz olmanın anlamsız bir kompozit özelliği olduğu için kullanımdan kaldırılmıştır.
Yanlış. Çünkü terim POD kaldırılmasına karar verildi artık önemli :
POD terimi artık standartta bir amaca hizmet etmiyor, sadece tanımlanıyor ve birkaç başka tür bu izleyici özelliği koruduğunda kısıtlamalar uygulanıyor.
Esasen, hem önemsiz hem de standart düzen olan bir tür, önemsiz olmanın ve standart düzen olmanın kendi başına sağladığı şeyin ötesinde herhangi bir yetenek kazanmaz. Bu ikisinin birleşimi türü özel yapmaz ve iki özelliğin birbirleriyle pek alakası yoktur.
Standart mizanpaj, boş olmayan alt nesnelerinin mizanpajının iyi tanımlanmış olması (ve tipin mizanpajını bozmayan boş temel sınıf alt nesneleri) ile ilgilidir. Önemsizlik, nesnenin sakladığı bit bloğunun ötesinde bir anlamı olup olmadığı (ve keyfi bir bit bloğu ile başlatılırsa kavramsal olarak geçerli bir nesne olup olmadığı) ile ilgilidir.
Bir tür alan bir şablon T
yapıyorsam memcpy
ve bu tür nesneler olup olmadığımı görmek istiyorsam , üyelerinin düzenini umursamıyorum; Önemsiz olarak kopyalanabilir olup olmadığını bilmek istiyorum. Benzer şekilde, offsetof
sınıfın kullanıcı tarafından sağlanan bir kopya oluşturucusu varsa , doğruluğu en ufak bir önem arz etmez. Tek dikkat ettiği şey, üye alt nesnelerin düzeninin açık ve standart olarak uygulanan bir sırada olması.
Temel olarak, insanlar etrafına baktı ve C ++ 'da özellikle önemsizliğin ve standart düzenin kesişimine ihtiyaç duymayan hiçbir şeyin kalmadığını fark etti . Yani bunun için bir şart ayırmamız gerekmiyor. Standardın bir tür "POD" olacağını açıkça belirttiği birkaç yer, uygun şekilde "önemsiz ve standart düzen" ile değiştirilebilir.
Bu özyinelemeli gereklilik gereksiz mi?
Kurucu gerekliliklerin her ikisi de ayrı ayrı özyinelemeli olduğundan, ikisinin kesişimi de özyinelemelidir. Bu nedenle, tüm alt nesnelerin de POD olduğunu belirtmek için açık bir ihtiyaç yoktur. Bu muhtemelen, kopyalamanın ve yapıştırma tuhaflığının bir örneğiydi, burada orijinal tanım "statik olmayan tüm veri üyeleri POD türleri olmalı" gibi bir şey söyledi ve bu ifadeyi olduğu gibi tuttular.