Я не вижу ничего плохого в этом дизайне.
Однако имейте в виду, что типы enum
могут содержать неопределенные значения. В зависимости от того, кто использует ваши функции, вы можете сначала проверить, является ли значение tsm
допустимым значением перечисления.
Поскольку enums
являются целочисленными значениями, можно сделать что-то вроде:
eTestMode tsm = static_cast<eTestMode>(17); // We consider here that 17 is not a valid value for your enumeration.
Однако делать это уродливо, и вы можете просто подумать, что это приведет к неопределенному поведению.