deprecated (C++)
Специфичные исключения (Майкрософт) с замеченные ниже нерекомендуемый объявление предлагает ту же функциональность, что и нерекомендуемый директива pragma:
нерекомендуемый объявление позволяет указать определенные формы перегруженных функций, как нерекомендуемый, тогда как форма pragma применяется ко всем перегружанным формам имени функции.
нерекомендуемый объявление позволяет указать сообщение, которое отображается во время компиляции.Текст сообщения может использоваться из макроса.
Макросы может быть отмечен как нерекомендуемый с нерекомендуемый директива pragma.
Если компилятор обнаруживает использование нерекомендуемого идентификатора, a C4996 предупреждение формируется.
Пример
В следующем примере показано, как пометить функции, такие как нерекомендуемый, и сообщение, которое будет отображаться во время компиляции, когда нерекомендуемая функция будет использоваться.
// deprecated.cpp
// compile with: /W3
#define MY_TEXT "function is deprecated"
void func1(void) {}
__declspec(deprecated) void func1(int) {}
__declspec(deprecated("** this is a deprecated function **")) void func2(int) {}
__declspec(deprecated(MY_TEXT)) void func3(int) {}
int main() {
func1();
func1(1); // C4996
func2(1); // C4996
func3(1); // C4996
}
В следующем примере показано, как пометить классы как нерекомендуемый, и сообщение, которое будет отображаться во время компиляции, когда нерекомендуемый класс будет использоваться.
// deprecate_class.cpp
// compile with: /W3
struct __declspec(deprecated) X {
void f(){}
};
struct __declspec(deprecated("** X2 is deprecated **")) X2 {
void f(){}
};
int main() {
X x; // C4996
X2 x2; // C4996
}