0

在我们协作中很多地方使用的一个C++库中,我们错误地在同一个lib命名空间中定义了多个枚举来定义常量值。枚举是一个独特的类型,但不是一个独特的命名空间。因此,所有枚举值最终都在同一个命名空间中。这是枚举标识符冲突的敞开大门,并且在使用自动完成时也很不方便。为了解决这个问题,我们正在考虑将不同的枚举移动到不同的命名空间中。

为了使用这个库轻松进化代码,我们希望能够在编译时显示“弃用”警告消息,建议在代码中遇到旧的枚举标识符时更改代码。

以下问答是否存在static_warning?提供一种在满足条件时定义弃用警告的方法。当枚举标识符出现在用户代码中时,我怎样才能达到相同的效果?

4

1 回答 1

1

如果您使用 Visual C++,您也许可以使用#pragma deprecated.

对于 GCC,有__attribute__编译器扩展,可用于将变量或函数标记为已弃用。虽然不知道枚举。

于 2013-04-05T10:03:31.457 回答