Que sont les types POD en C++ et à quoi servent-ils ?
Bonjour à tous ! J'ai commencé à étudier le C++ et je suis tombé sur le terme "type POD". J'ai lu la documentation, mais je n'ai pas tout compris. J'ai rencontré des expressions comme "trivialement copiable", "disposition standard" — j'ai la tête qui tourne.
Par exemple, j'ai deux structures :
```cpp
struct Point {
int x;
int y;
};
struct Person {
std::string name;
int age;
};
```
J'ai entendu dire que `Point` est un type POD, mais pas `Person`. Mais pourquoi ? Pourtant, les deux structures ne contiennent que des données.
Je m'intéresse aussi à l'aspect pratique. Où cette connaissance peut-elle être utile ? J'ai entendu dire que les types POD peuvent être copiés en toute sécurité via `memcpy` et utilisés dans une union. Mais comment cela fonctionne-t-il et quand est-ce vraiment nécessaire ?
Expliquez-moi, s'il vous plaît, en termes simples : qu'est-ce qu'un POD en C++ moderne (C++11 et plus récent), en quoi diffèrent-ils des classes/structures ordinaires, et dans quels cas concrets cette connaissance sera utile. Je vous serais reconnaissant pour des exemples de code.
<<>>
Que sont les types POD ?
En C++ moderne (à partir de