Как бы поизящнее прикрутить к enum ограничение области видимости в версиях до C++11?
Я пока не придумал ничего лучшего, чем заворачивать enum в одноименный namespace, но тогда на имя типа приходится ссылаться конструкцией вида EnumType::EnumType, что выглядит как-то коряво.