Comment obtenir le nom de la classe?

Si je définis une classe:

class Blah {};

Comment puis-je:

std::string const className = /* What do I need to do here? */;
assert( className == "Blah" );

Je ne pense pas que typeid().nom() est une bonne idée car c'est compilateur de mise en œuvre spécifiques. Est-il rien de prévu par la norme C++ ou coup de pouce?

Remarque: Si la classe ont été hérités de l'intervalle Qt de QObject, je pourrais facilement utiliser QMetaObject::className() pour obtenir le nom de la classe.

OriginalL'auteur sivabudh | 2010-12-16