我创建了一个小类,允许我使用强类型枚举的枚举器作为标志(组合)。我正在使用type_traits进行底层类型检测,所以它应该是稍微类型安全的,并且主要在编译时处理。但是,我想知道它是否真的值得。
我现在可以写一些类似
的内容void Foo(Flags<Mode> Value);
并且程序员将看到他只能使用Mode中的枚举器(例如Mode :: Read),并且他也不能将任何其他枚举与Mode结合使用。你认为它比
更好吗?void Foo(int Mode);
,我不确定人们是否能欣赏它?
答案 0 :(得分:7)
您的建议被视为最佳做法。
使用现代优化编译器,应该没有性能成本。