deprecated
pragma
deprecated
pragma可讓您指出未來版本中可能不再支援函式、類型或任何其他標識碼,或不應該再使用。
注意
如需C++14 [[deprecated]]
屬性的相關信息,以及使用該屬性而非Microsoft __declspec(deprecated)
修飾詞或 deprecated
pragma 的指引,請參閱 C++ 中的屬性。
語法
#pragma deprecated(
identifier1 [,
identifier2 ... ])
備註
當編譯程式遇到 所 deprecated
pragma指定的標識符時,它會發出編譯程式警告 C4995。
您可以取代巨集名稱。 為巨集名稱加上引號,否則會發生巨集展開。
由於 適用於所有 deprecated
pragma 相符的標識碼,而且不會將簽章納入考慮,因此它不是取代特定多載函式版本的最佳選項。 進入範圍的任何相符函式名稱會觸發警告。
建議您盡可能使用 C++14 [[deprecated]]
屬性,而不是 deprecated
pragma。 Microsoft特定 __declspec(deprecated)
宣告修飾詞在許多案例 deprecated
pragma中也是比 更好的選擇。 [[deprecated]]
屬性和__declspec(deprecated)
修飾詞可讓您指定特定多載函式形式已被取代的狀態。 診斷警告只會出現在屬性或修飾詞所套用之特定多載函式的參考上。
範例
// 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
}
下列範例將示範如何取代類別:
// pragma_directive_deprecated2.cpp
// compile with: /W3
#pragma deprecated(X)
class X { // C4995
public:
void f(){}
};
int main() {
X x; // C4995
}