首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> C++ 入門

C++ 庫研究:用 __attribute__((deprecated)) 管理過時代碼並保留兼容

     編輯:C++ 入門

背景

庫演進中需標記某些類/函數為「棄用」,但為兼容舊代碼暫時保留。編譯器層面產生警告,引導用戶遷移新 API。

GCC/Clang 語法

#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。

OpenCV 風格跨平台宏

)。
  • 分階段棄用:先警告,幾個版本後移除。
  • 單元測試覆蓋:確保棄用功能仍正常工作,防止誤傷。
  • 文檔同步更新:遷移指南、Changelog 標記棄用項。
  • C++14 標準屬性

    現代編譯器(GCC 4.9+, Clang 3.4+, MSVC 19.0+)均支持,首選標準寫法。

    1. 上一篇文章:
    2. 下一篇文章:
    Copyright © 程式碼之家 All Rights Reserved