stl_construct.h et opérateur new
Bonjour tout le monde,
Par pur curiosité, j'ai commencé à regarder l'implémentation de std::vector quand je suis tombé sur la fonction construct permettant d'allouer en mémoire un objet.
Cette dernière fait appelle à la fonction suivante:
Code:
1 2 3 4
| template <class _T1>
inline void _Construct(_T1* __p) {
new ((void*) __p) _T1(); // la ligne que je ne suis pas sûr de comprendre
} |
J'interprète ce new de la façon suivante:
- Cast de T1* __p en void*
- Création d'un pointeur T1
Est-ce que je me trompe beaucoup?
Pourquoi ne pas utiliser le constructeur de recopie? (Parce que certaines classes n'en a pas ou est inaccessible?)
Merci pour tout
PS: J'ai trouvé ce code ici