簡體   English   中英

C ++中函數的特殊限定符

[英]Special qualifiers for functions in C++

我在很多地方都看到過代碼,在這些地方您具有由用戶定義的關鍵字限定的功能。 例如

#define EXTERNAL_API dec __declspec(dllexport)

然后我們有一個函數調用

void EXTERNAL_API doStuff() {}

我了解這種情況下的目的,但我想知道這些限定符是否可用於對符合此條件的功能執行特定的行為。 例如,如果要在類中將某個函數標記為已棄用,並且在其他地方使用了此函數調用,則會收到編譯時警告該函數已棄用,請改用doStuff2()。 如何實現此功能?

每個編譯器都有自己的關鍵字,以將功能標記為已棄用,對於MSVS,您可以執行以下操作:

#define DEPRECATED __declspec(deprecated(COMPILE_ERROR_TEXT))

您可以將其用作:

DEPRECATED void oldFunction();

在C ++ 14中,可以使用[[deprecated]]標簽。 像那樣:

[[deprecated]]
void oldFunc();

希望對您有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM