Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a témakör a Microsoft-specifikus elavult deklarációról szól. A C++14 [[deprecated]] attribútumról és a Microsoft-specifikus declspec vagy pragma attribútumokról a C++ Standard attribútumok című témakörben olvashat bővebben.
Az alábbi kivételekkel a deprecated deklaráció ugyanazt a funkciót biztosítja, mint az elavult pragma:
A
deprecateddeklaráció lehetővé teszi a függvények túlterhelésének meghatározott formáinak meghatározását elavultként, míg a pragma űrlap a függvénynév összes túlterhelt formájára vonatkozik.A
deprecateddeklarációval megadhat egy üzenetet, amely fordításkor jelenik meg. Az üzenet szövege makróból is származhat.A makrók csak elavultként jelölhetők meg a
deprecatedpragmával.
Ha a fordító elavult azonosítót vagy standard [[deprecated]] attribútumot használ, a rendszer C4996-figyelmeztetést ad.
Példák
Az alábbi minta bemutatja, hogyan jelölheti meg a függvényeket elavultként, és hogyan adhat meg egy olyan üzenetet, amely a fordításkor jelenik meg az elavult függvény használatakor.
// 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
}
Az alábbi minta bemutatja, hogyan jelölheti meg az osztályokat elavultként, és hogyan adhat meg egy üzenetet, amely a fordításkor jelenik meg az elavult osztály használatakor.
// 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
}