繁体   English   中英

C ++中函数的特殊限定符

[英]Special qualifiers for functions in C++

我在很多地方都看到过代码,在这些地方您具有由用户定义的关键字限定的功能。 例如

#define EXTERNAL_API dec __declspec(dllexport)

然后我们有一个函数调用

void EXTERNAL_API doStuff() {}

我了解这种情况下的目的,但我想知道这些限定符是否可用于对符合此条件的功能执行特定的行为。 例如,如果要在类中将某个函数标记为已弃用,并且在其他地方使用了此函数调用,则会收到编译时警告该函数已弃用,请改用doStuff2()。 如何实现此功能?

每个编译器都有自己的关键字,以将功能标记为已弃用,对于MSVS,您可以执行以下操作:

#define DEPRECATED __declspec(deprecated(COMPILE_ERROR_TEXT))

您可以将其用作:

DEPRECATED void oldFunction();

在C ++ 14中,可以使用[[deprecated]]标签。 像那样:

[[deprecated]]
void oldFunc();

希望对您有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM