deprecated (C++)
本主題與 Microsoft 特定的 deprecated declspec 宣告有關。 如需 C++14 [[deprecated]]
屬性的相關資訊,以及使用該屬性與 Microsoft 特定 declspec 或 pragma 的時機指引,請參閱 C++ 標準屬性 。
在以下所述的例外狀況下 deprecated
,宣告會提供與 已 取代 pragma 相同的功能:
宣告
deprecated
可讓您將特定形式的函式多載指定為已被取代,而 pragma 表單則套用至函式名稱的所有多載形式。宣告
deprecated
可讓您指定將在編譯時期顯示的訊息。 訊息的文字可以來自巨集。宏只能標示為已過時的
deprecated
pragma。
如果編譯器遇到使用已被取代的識別碼或標準 [[deprecated]]
屬性, 則會擲回 C4996 警告。
範例
下列範例將示範使用 deprecated 函式時,如何將函式標示為取代以及如何指定要在編譯時期顯示的訊息。
// 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
}
下列範例將示範使用 deprecated 類別時,如何將類別標示為取代以及如何指定要在編譯時期顯示的訊息。
// 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
}
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將推出:在 2024 年,我們將隨著內容的意見反應機制逐步淘汰 GitHub 問題,並以新的意見反應系統來取代。 如需詳細資訊,請參閱提交並檢視相關的意見反應