Стоит ли самодокументируемый код потенциальных проблем с производительностью?

Я создал небольшой класс, который позволяет мне использовать перечислители строго типизированных перечислений в качестве флагов (в комбинации). Я использую type_traits для определения базового типа, поэтому он также должен быть слегка безопасным для типов и в основном обрабатываться во время компиляции. Однако мне было интересно, стоит ли это того.

Теперь я могу написать что-то вроде

void Foo(Flags<Mode> Value);

и программист увидит, что он может использовать только перечислители из Mode (например, Mode::Read), а также он не может комбинировать любые другие перечисления с Mode. Как вы думаете, это лучший способ, чем

void Foo(int Mode);

Я не уверен, могут ли люди это ценить?

1 ответ

Решение

То, что вы предлагаете, считается лучшей практикой.

С современным оптимизирующим компилятором не должно быть никаких затрат производительности.

Другие вопросы по тегам