Я использую enumed scope для перечисления состояний в некоторой машине состояний, которую я реализую. Например, скажем что-то вроде:
enum class CatState
{
sleeping,
napping,
resting
};
В моем файле cpp, где я определяю таблицу перехода состояния, я хотел бы использовать что-то эквивалентное using namespace X
, так что мне не нужно префикс всех моих имен состояний CatState::
. Другими словами, я бы хотел использовать sleeping
вместо CatState::sleeping
. В моей таблице переходов есть несколько столбцов, поэтому избегать префикса CatState::
будет держать вещи более компактными и читаемыми.
Итак, есть ли способ избежать необходимости набирать CatState::
все время?
Да, да, я уже знаю о подводных камнях using namespace
. Если есть эквивалент для строго типизированных перечислений, я обещаю использовать его только в ограниченной области действия в файле реализации cpp, а не для зла.