共用方式為


deprecated pragma

deprecatedpragma可讓您指出未來版本中可能不再支援函式、類型或任何其他標識碼,或不應該再使用。

注意

如需C++14 [[deprecated]] 屬性的相關信息,以及使用該屬性而非Microsoft __declspec(deprecated) 修飾詞或 deprecatedpragma 的指引,請參閱 C++ 中的屬性。

語法

#pragma deprecated(identifier1 [ , identifier2 ... ])

備註

當編譯程式遇到 所 deprecatedpragma指定的標識符時,它會發出編譯程式警告 C4995

您可以取代巨集名稱。 為巨集名稱加上引號,否則會發生巨集展開。

由於 適用於所有 deprecatedpragma 相符的標識碼,而且不會將簽章納入考慮,因此它不是取代特定多載函式版本的最佳選項。 進入範圍的任何相符函式名稱會觸發警告。

建議您盡可能使用 C++14 [[deprecated]] 屬性,而不是 deprecatedpragma。 Microsoft特定 __declspec(deprecated) 宣告修飾詞在許多案例 deprecatedpragma中也是比 更好的選擇。 [[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
}

另請參閱

Pragma 指示詞和 __pragma_Pragma 關鍵詞