有没有办法将C ++中的方法/类标记为过时?
在c#中你可以写:
[Obsolete("You shouldn't use this method anymore.")]
void foo() {}
如果重要的话,我会使用GNU工具链/ Eclipse CDT。
答案 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 { /*...*/ };