Le POD est remplacé par deux catégories qui apportent plus de nuances. Le site Réunion du standard c++ en novembre 2017 a dit ceci à ce sujet :
Dépréciation de la notion de "plain old data" (POD). Elle a été remplacée par deux catégories de types plus nuancées, "trivial" et "standard-layout". "POD" est équivalent à "trivial et standard-layout", mais pour de nombreux modèles de code, une restriction plus étroite à seulement "trivial" ou seulement "standard-layout" est appropriée ; pour encourager une telle précision, la notion de "POD" a donc été dépréciée. Le trait de bibliothèque is_pod a également été déprécié en conséquence.
Pour les types de données simples, utilisez le is_standard_layout
pour les types de données triviaux (tels que les structs simples), utilisez la fonction is_trivial
fonction.
1 votes
Voir aussi open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0767r1.html et US 101 à open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0488r0.pdf
3 votes
Pourquoi voulez-vous savoir si un type est POD ?
12 votes
@MarcGlisse Une question sur les changements dans la norme ou un trait comme celui-ci ne signifie pas nécessairement que je veux utiliser cette fonctionnalité. J'ai trouvé le déprécié J'ai trouvé cette note en cherchant sur Google et j'étais simplement curieux de savoir pourquoi elle était dépréciée.
0 votes
Ma question était en fait une réponse indirecte : elle a été supprimée parce que (en gros) il n'y a aucune raison de demander si un type est POD.
8 votes
Je l'utiliserais pour un
static_assert
pour s'assurer que personne ne touche aux structs qui devraient être partagés avec le code C.0 votes
@Mirko Je me retrouve à l'utiliser pour cela assez souvent aussi, donc ce changement est assez décevant.