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:
J'interprète ce new de la façon suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 }
- 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
Partager