Dela via


deprecated pragma

Med deprecatedpragma kan du ange att en funktion, typ eller någon annan identifierare kanske inte längre stöds i en framtida version eller inte längre ska användas.

Not

Information om attributet C++14 [[deprecated]] och vägledning om när attributet ska användas i stället för Microsoft __declspec(deprecated)-modifieraren eller deprecatedpragmafinns i Attribut i C++.

Syntax

#pragma deprecated( identifierare1 [ ,identifierare2 ... ] )

Anmärkningar

När kompilatorn stöter på en identifierare som anges av en deprecatedpragmautfärdar den kompilatorvarning C4995.

Du kan inaktuella makronamn. Placera makronamnet inom citattecken, annars sker makroexpansionen.

Eftersom deprecatedpragma fungerar på alla matchande identifierare och inte tar hänsyn till signaturer är det inte det bästa alternativet för att ta bort specifika versioner av överlagrade funktioner. Alla matchande funktionsnamn som tas med i omfånget utlöser varningen.

Vi rekommenderar att du använder attributet C++14 [[deprecated]] när det är möjligt i stället för deprecatedpragma. Den Microsoft-specifika __declspec(deprecated)-deklarationsmodifieraren är också ett bättre val i många fall än deprecatedpragma. Med [[deprecated]]-attributet och __declspec(deprecated)-modifieraren kan du ange inaktuell status för vissa former av överbelastade funktioner. Diagnostikvarningen visas bara på referenser till den specifika överlagrade funktion som attributet eller modifieraren gäller för.

Exempel

// pragma_directive_deprecated.cpp
// compile with: /W3
#include <stdio.h>
void func1(void) {
}

void func2(void) {
}

int main() {
   func1();
   func2();
   #pragma deprecated(func1, func2)
   func1();   // C4995
   func2();   // C4995
}

Följande exempel visar hur du inaktuella en klass:

// pragma_directive_deprecated2.cpp
// compile with: /W3
#pragma deprecated(X)
class X {  // C4995
public:
   void f(){}
};

int main() {
   X x;   // C4995
}

Se även

Pragma-direktiv och nyckelorden __pragma och _Pragma