Syntaxe pour le placement new dans une fonction
Je bloque un peu sur mon apprentissage.
J'ai implementé une fonction qui ne fait rien d'autre qu'un placement new (juste un return). voici la méthode
Code:
1 2 3 4 5 6 7
|
template<typename T>
T* CustomNew(T** const i_ptr, const T& Val)
{
return new ((void*)*i_ptr) T(Val);
//return new (*i_ptr) T(Val);
} |
Et je voudrai appeler ma fonction pour remplacer la ligne avec le new(la ligne commentée).Le problème c'est que je ne sais pas comment faire l'appel de ma fonction dans ce genre de cas.
Code:
1 2 3 4 5 6 7 8 9
|
T* ptr(nullptr);
T *amm = nullptr;
for (i = 0; i < n; ++i)
{
auto* ptri = amm + i;
ptr = CustomNew<T>(&ptri, T()); //nouvelle ligne
//ptr = new (ptri) T(); //ancienne ligne
} |
SVP je voiudrai juste savoir comment donner les parametres de ma fonction en locurence le second parametre. En gros, comment la nouvelle ligne devrait être écrite svp
Merci d'avance