#pragma是否根据签名弃用了一个函数?

stu*_*uck 5 c++ deprecated visual-c++

在Visual Studio中,是否可以#deprecated一个函数,基于函数的签名,而不仅仅是名称?

在我的例子中,我们使用的是C++,并且不想弃用函数的所有版本

int foo();        <-- we want to keep
int foo(int x);   <-- we want to deprecate
Run Code Online (Sandbox Code Playgroud)

Naw*_*waz 12

这样做:

__declspec(deprecated) void foo(int) {}
Run Code Online (Sandbox Code Playgroud)

如果您希望编译器在编译已弃用的函数时生成特定的消息,请执行以下操作:

__declspec(deprecated("foo(int) is a deprecated function.")) void foo(int) {}
Run Code Online (Sandbox Code Playgroud)