Je veux garantir que le pointeur que j'ai passé à la fonction ne peut pas être supprimé à l'intérieur de cette fonction (je veux dire que le compilateur générerait une erreur lors du traitement d'une telle fonction). Voici la situation initiale.
void foo(Bar *bar) { delete bar; }
J'ai alors essayé en vain quelques solutions.
void foo(Bar *bar) { delete bar; }
void foo(const Bar * const bar) { delete bar; } { delete bar; }
template <typename T> void foo(const T &t) { delete t; } // calling foo(bar);
Je voudrais savoir s'il existe un moyen d'interdire la suppression d'un pointeur. Et si ce n'est pas possible, pourquoi a-t-il été créé ?