Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Det här avsnittet handlar om den Microsoft-specifika inaktuella declspec-deklarationen. Information om attributet C++14 [[deprecated]] och vägledning om när attributet ska användas jämfört med Microsoft-specifika declspec- eller pragma-attribut finns i C++ Standardattribut.
Med de undantag som anges nedan erbjuder deklarationen deprecated samma funktioner som den inaktuella pragman:
Med deklarationen
deprecatedkan du ange särskilda former av funktionsöverbelastningar som inaktuella, medan pragmaformuläret gäller för alla överlagrade former av ett funktionsnamn.Med deklarationen
deprecatedkan du ange ett meddelande som ska visas vid kompileringstillfället. Texten i meddelandet kan komma från ett makro.Makron kan bara markeras som inaktuella med
deprecatedpragma.
Om kompilatorn stöter på användning av en inaktuell identifierare eller standardattributet [[deprecated]] utlöses en C4996-varning .
Exempel
Följande exempel visar hur du markerar funktioner som inaktuella och hur du anger ett meddelande som ska visas vid kompileringstillfället, när den inaktuella funktionen används.
// 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
}
Följande exempel visar hur du markerar klasser som inaktuella och hur du anger ett meddelande som ska visas vid kompileringstillfället, när den inaktuella klassen används.
// 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
}