Supposons que j'écrive ma propre exception qui dérive de std::exception et que je redéfinisse la fonction what() pour lui faire afficher un message particulier :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
const char* what() const throw()
{
return "Mon exception";
}
Puisque cette fonction retourne un objet const char* alloué sur la pile, je voulais savoir à l'utilisation si la zone pointée par le pointeur retourné par what() sera toujours valide ?
Par exemple est - ce que pointe toujours sur une zone de mémoire valide sachant que l'on est sorti du scope de la fonction what() ?
Apparement, ça marche mais j'ai quand même un doute ...