如何调整让所有enum class元素在ClassView中集中分组显示?
enum class在Visual Studio类视图集中分组的解决方案
现象原因
Visual Studio类视图默认将C风格typedef enum识别为独立枚举类型,自动归到枚举分组下;而enum class是C++11引入的强类型类类型枚举,默认会和普通类、结构体放在同一层级按字母序混排。
常用调整方案
以下是行业内公认的几种可选方案,可根据项目开发习惯选择:
方案1:调整类视图分组设置(无代码侵入,最推荐)
- 打开类视图窗口,点击顶部工具栏的齿轮状「设置」按钮,或右键点击类视图的根项目节点
- 选择「分组依据」->「对象类型」,调整后类视图会按元素类型自动拆分分组,所有
enum class和普通枚举都会统一归类到「枚举」分组下,和类、结构体、命名空间等其他类型分开展示。
方案2:统一枚举命名前缀(适配按字母序排序的场景)
如果项目习惯保留类视图按字母序排序的规则,可以给所有枚举类型加统一前缀,比如E_或Enum:
enum class E_UndoAction { ChangeCell = 0, ChangeSelectionStart, ChangeSelectionSub };
调整后所有枚举都会集中排列在字母E开头的区域,也能实现快速筛选。
方案3:统一枚举命名空间(适合中大型项目)
把项目内所有全局枚举都放到专用的命名空间下管理:
namespace Enums { enum class UndoAction { ChangeCell = 0, ChangeSelectionStart, ChangeSelectionSub }; // 其他枚举统一定义在此处 }
类视图会将Enums作为独立的命名空间节点展示,点进节点即可查看所有枚举类型,也方便代码层面统一管理枚举。
内容的提问来源于stack exchange,提问作者Andrew Truckle
相关产品推荐
相关产品推荐

