Bonjour tout le monde,
J'ai un problème j'utilise ce code pour libérer mes pointeurs :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
template <typename B>
    static void SafeDelete(B & pointer)
    {
        if( pointer )
        {
            delete pointer ;
            pointer = nullptr ;
        }
    }
SafeDelete est une fonction extérieure aux classes, et le problème est que si un pointeur à déjà été libéré, avec le code ci-dessus, le programme va quand même dans le if, et plante.
Quelqu'un pourrait il m'aider ?
J'ai également une question : doit on libérer dans le destructeur, les smart pointeurs s'ils ne sont pas encore libérés ?