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

时间:2011-01-27 17:58:12

标签: c++ visual-c++ deprecated

在Visual Studio中,

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

就我而言,我们使用的是C ++,并且不想弃用函数的所有版本

int foo();        <-- we want to keep
int foo(int x);   <-- we want to deprecate

2 个答案:

答案 0 :(得分:12)

这样做:

__declspec(deprecated) void foo(int) {}

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

__declspec(deprecated("foo(int) is a deprecated function.")) void foo(int) {}

答案 1 :(得分:3)

deprecated may also be specified in a __declspec(),(甚至比#pragma更好,因为它可以让您根据需要提供理由。