抽象c ++枚举以减少编译

时间:2013-09-06 20:26:03

标签: c++ compilation enums

在我的代码中,我有一个通过枚举符号引用的中央数据存储。这允许我查看我的代码中的所有位置,其中引用了枚举符号来设置/获取值。每当我想添加一个新符号时,就会出现问题,它需要重新编译可能访问数据存储的所有代码,因为它们都会触及枚举头文件。

是否有一些抽象可以减少重新编译?也许是一种设计模式?

2 个答案:

答案 0 :(得分:1)

这就是你所谓的“中央数据存储”所带来的问题。这听起来像是在单个头文件中放置您不知道如何处理的所有枚举的借口。

如果枚举与某个类相关并且仅在使用该类时使用,则将其放在与该类相同的头文件中。如果您的枚举确实是独立的,您仍然可以将该头文件分成多个头文件,其中包含更多特定类别的枚举。

答案 1 :(得分:1)

如果您可以访问c ++ 11功能,那么您唯一能做的就是使用strongly typed enums。然后你可以转发声明枚举,并且你不必在需要枚举的其他标题中包含那个标题。

对于pre-c ++ 11,无法阻止重新编译。