#pragma отменить функцию, основанную на подписи? - PullRequest
5 голосов
/ 27 января 2011

в Visual Studio можно # определить функцию, основанную на сигнатуре функции, а не просто на названии?

В моем случае мы находимся в C ++ и не хотим отказываться от всех вариантов функции

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

Ответы [ 2 ]

12 голосов
/ 27 января 2011

Просто сделайте это:

__declspec(deprecated) void foo(int) {}

И если вы хотите, чтобы компилятор генерировал специфическое сообщение при компиляции устаревшей функции, то сделайте это:

__declspec(deprecated("foo(int) is a deprecated function.")) void foo(int) {}
3 голосов
/ 27 января 2011

не рекомендуется также указывать в __declspec() (что даже лучше, чем #pragma, поскольку при необходимости можно указать причину.

...