deprecated (C++)
(特定的 Microsoft)下面所述的例外狀況與已被取代的 宣告提供了與相同的功能 已被取代的 pragma:
已被取代的宣告,讓您指定的函式多載的特定表單做為被取代,而 pragma 表單會套用到所有多載型式的函式名稱。
已被取代的宣告可讓您指定在編譯時期將會顯示一個訊息。 訊息的文字可以從 [巨集。
巨集可以只會將標記為已被取代的已被取代的 pragma。
如果編譯器遭遇的是已被取代的識別項,使用 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
}