标记类/方法在C ++中已过时或已弃用

时间:2009-05-07 18:43:06

标签: c++ compiler-construction attributes

有没有办法将C ++中的方法/类标记为过时?

在c#中你可以写:

[Obsolete("You shouldn't use this method anymore.")]
void foo() {}

如果重要的话,我会使用GNU工具链/ Eclipse CDT。

4 个答案:

答案 0 :(得分:7)

仅使用编译器相关编译指示:查找documentation

 int old_fn () __attribute__ ((deprecated));

答案 1 :(得分:7)

最简单的方法是使用#define DEPRECATED。在GCC上,它扩展为__attribute__((deprecated)),在Visual C ++上它扩展为__declspec(deprecated),而在没有silimar的编译器上,它扩展为空。

答案 2 :(得分:0)

我不知道您使用的C ++版本,但Microsoft的Visual C ++有一个deprecated pragma。也许你的版本有类似的东西。

答案 3 :(得分:0)

c ++ 17标准现在提供了此功能:https://en.cppreference.com/w/cpp/language/attributes/deprecated

[[deprecated]] void F();
[[deprecated("reason")]] void G();
class [[deprecated]] H { /*...*/ };