庫演進中需標記某些類/函數為「棄用」,但為兼容舊代碼暫時保留。編譯器層面產生警告,引導用戶遷移新 API。
#if defined(_MSC_VER) #define DEPR_BEFORE __declspec(deprecated) #define DEPR_AFTER #else #define DEPR_BEFORE #define DEPR_AFTER __attribute__((deprecated)) #endif // 使用 DEPR_BEFORE void oldFunc() DEPR_AFTER;
MSVC 警告:warning C4996: 'oldFunc': was declared deprecated。
)。
現代編譯器(GCC 4.9+, Clang 3.4+, MSVC 19.0+)均支持,首選標準寫法。