我在几个地方看到了代码,你有一个由用户定义的关键字限定的函数。例如
#define EXTERNAL_API dec __declspec(dllexport)
然后我们有一个函数调用
void EXTERNAL_API doStuff() {}
我理解这种情况的目的,但我想知道这些限定符是否可用于对使用此限定的函数执行特定行为。例如,如果我想在我的类中将函数标记为已弃用,并且如果我在其他地方使用此函数调用,则会收到编译时警告,此函数已弃用,请改用doStuff2()。我怎样才能实现这个功能?
答案 0 :(得分:2)
每个编译器都有自己的关键字来将函数标记为已弃用,对于MSVS,您可以执行以下操作:
#define DEPRECATED __declspec(deprecated(COMPILE_ERROR_TEXT))
您可以将其用作:
DEPRECATED void oldFunction();
在C ++ 14中,有可能使用[[deprecated]]标签。 像那样:
[[deprecated]]
void oldFunc();
我希望这会对你有帮助。