ОК>>Ну а у меня сложилось мнение прямо противоположное твоему. Кто из нас прав?
x_X>ты про это http://rsdn.ru/article/cpp/Cpp_Strict_Enumerations.xml#EIGАвтор(ы): Вьюков Дмитрий Сергеевич, Тепляков Сергей Владимирович
Дата: 13.07.2010
В данной статье рассмотрены несколько решений, позволяющих ослабить или практически полностью избавиться от недостатков перечислений (enumerations) языка программирования С++. Представленные решения, отличаются сложностью реализации и функциональностью, и могут оказаться полезными в арсенале каждого современного разработчика.
?
И про это тоже. Абсолютно ненужные навороты.
Кстати, бросилось в глаза (раз уж ты дал ссылку):
/** Внутреннее имя */
std::string InternalName() const
{
return internalName_;
}
/** Внешнее имя */
std::string ExternalName() const
{
return externalName_;
}
private:
/*const*/ Type value_; //!< значение
/*const*/ std::string internalName_; //!< внутреннее имя
/*const*/ std::string externalName_; //!< внешнее имя
Гуру возвращает std::string из InternalName() и ExternalName(). Не вижу причин для этого. Было бы лучше вернуть const std::string &.