Chaîne C ++ à enum

Est-il un moyen simple en C++ pour convertir une chaîne en un enum (similaire à Enum.Parse en C#)? Une instruction switch serait très long, donc je me demandais si il existe un moyen plus simple de faire cela?

EDIT:

Merci pour toutes vos réponses. J'ai réalisé qu'il y avait un moyen beaucoup plus simple de le faire pour mon cas particulier. Les cordes toujours contenait le personnage de " S " suivi d'un nombre, donc j'ai juste fait

int i = atoi(myStr.c_str() + 1);

et puis a un interrupteur sur i.

source d'informationauteur Daniel