我创建了一个小类,它允许我使用强类型枚举的枚举器作为标志(组合)。我正在使用 type_traits 进行底层类型检测,因此它也应该是稍微类型安全的,并且主要在编译时处理。但是,我想知道这是否真的值得。
我现在可以写类似的东西
void Foo(Flags<Mode> Value);
并且程序员将看到他只能使用 Mode 中的枚举器(例如 Mode::Read),而且他不能将任何其他枚举与 Mode 结合使用。你认为这是更好的方法吗?
void Foo(int Mode);
,我不确定人们是否会欣赏它?