Стоит ли самодокументируемый код потенциальных проблем с производительностью?
Я создал небольшой класс, который позволяет мне использовать перечислители строго типизированных перечислений в качестве флагов (в комбинации). Я использую type_traits для определения базового типа, поэтому он также должен быть слегка безопасным для типов и в основном обрабатываться во время компиляции. Однако мне было интересно, стоит ли это того.
Теперь я могу написать что-то вроде
void Foo(Flags<Mode> Value);
и программист увидит, что он может использовать только перечислители из Mode (например, Mode::Read), а также он не может комбинировать любые другие перечисления с Mode. Как вы думаете, это лучший способ, чем
void Foo(int Mode);
Я не уверен, могут ли люди это ценить?
1 ответ
То, что вы предлагаете, считается лучшей практикой.
С современным оптимизирующим компилятором не должно быть никаких затрат производительности.