std::is_podprobablemente estará en desuso en C ++ 20.
¿Cuál es el motivo de esta elección? ¿Qué debo usar en lugar de std::is_podpara saber si un tipo es realmente un POD?
c++
typetraits
skypjack
fuente
fuente

static_assertasegurarme de que nadie toque estructuras que deberían compartirse con el código C.Respuestas:
POD está siendo reemplazado por dos categorías que dan más matices. La reunión estándar de c ++ en noviembre de 2017 tenía esto que decir al respecto:
Para tipos de datos simples use la
is_standard_layoutfunción, para tipos de datos triviales (como estructuras simples) use lais_trivialfunción.fuente
remove_cvrefpor un lado, ¿que es un rasgo compuesto, mientras que por el otro lado eliminan otros rasgos compuestos? Parece una locura. :-)std::is_pod<T>{} == (std::is_trivial<T>{} && std::is_standard_layout<T>{})?std::is_pod,std::is_triviaystd::is_standard_layoutel tiempo de compilación? Porque en los algoritmos, es posible que desee un algoritmo más rápido usando memcpy (), etc. si es compatible con el diseño C.