Que sont les types POD en C++ et pourquoi sont-ils nécessaires ?
Bonjour à tous ! J'ai commencé à étudier C++ et je suis tombé sur le terme "type POD". J'ai lu la documentation, mais je ne comprends toujours pas complètement. Apparemment, c'est "Plain Old Data", mais qu'est-ce que cela apporte en pratique ?
Supposons que j'écrive une simple structure pour stocker un point :
```cpp
struct Point {
int x;
int y;
};
```
Est-ce un type POD ? Et si j'ajoute un constructeur ?
```cpp
struct Point2 {
Point2() : x(0), y(0) {}
int x;
int y;
};
```
Ou si j'ajoute une fonction virtuelle ?
```cpp
struct Point3 {
virtual void print() {}
int x;
int y;
};
```
Pourquoi est-ce important ? Où est-ce utilisé ? J'ai entendu dire que les types POD peuvent être copiés via memcpy, mais pas les structures ordinaires. Est-ce vrai ? Et comment vérifier si un type est POD en C++ moderne ?
J'aimerais obtenir une explication claire avec des exemples, de préférence du point de vue du standard moderne (C++11/14/17/20). Merci d'avance !
<<>>
Que sont les types POD en C++ ?
POD (Plain Old Data)