自我记录代码是否值得潜在的性能问题?

Hem*_*lin 4 c++ enums templates self-documenting-code enum-class

我创建了一个小类,允许我使用强类型枚举的枚举器作为标志(组合).我正在使用type_traits进行底层类型检测,因此它应该是稍微类型安全的,并且主要在编译时处理.但是,我想知道它是否真的值得.

我现在可以写一些像

void Foo(Flags<Mode> Value);
Run Code Online (Sandbox Code Playgroud)

并且程序员将看到他只能使用Mode中的枚举器(例如Mode :: Read),并且他也不能将任何其他枚举与Mode结合使用.你觉得它比...更好吗?

void Foo(int Mode);
Run Code Online (Sandbox Code Playgroud)

,我不确定人们是否能欣赏它?

Joh*_*åde 7

您的建议被认为是最佳做法.

使用现代优化编译器,应该没有性能成本.