Здравствуйте, Олег К., Вы писали:
ОК>Гуру возвращает std::string из InternalName() и ExternalName(). Не вижу причин для этого. Было бы лучше вернуть const std::string &.
это мелочи. гуру вставляет в статью то, что не компилируется даже глазами:
struct Color
{
enum Type
{
Red, Green, Black
};
Type t_;
Color(Type t) : t_(t) {}
operator Type () const {return t_;}
private:
// Предотвращает неявное преобразование значений перечисления
// к любым типам, кроме типа type, что препятствует сравнению
// значений перечислений с интегральными типами или со значениями
// других перечислений
template<typename T>
operator T () const;
};