用__attribute__((deprecated)) 管理过时代码,同时保留兼容的接口
Linux下:
#define DEPR_AFTER __attribute__((deprecated))
#define DEPR_BEFOR
class DEPR_BEFOR AAA
{
}DEPR_AFTER;
int main(int argc, char** argv)
{
typedef float T;
AAA aa;
return 0;
}g++ main.cpp -o main
main.cpp: In function ‘int main(int, char**)’:
main.cpp:16:9: warning: ‘AAA’ is deprecated (declared at main.cpp:9) [-Wdeprecated-declarations]
WINDOWS下:
对于VC,类似如OPENCV定义:
#if defined __GNUC__
#define __CV_GPU_DEPR_BEFORE__
#define __CV_GPU_DEPR_AFTER__ __attribute__ ((deprecated))
#elif defined(__MSVC__) //|| defined(__CUDACC__)
#pragma deprecated(DevMem2D_)
#define __CV_GPU_DEPR_BEFORE__ __declspec(deprecated)
#define __CV_GPU_DEPR_AFTER__
#else
#define __CV_GPU_DEPR_BEFORE__
#define __CV_GPU_DEPR_AFTER__
#endif
本文探讨了如何使用__attribute__((deprecated))来标记过时代码,并保持兼容性。通过具体示例,展示了在Linux和Windows(尤其是Visual C++)环境下实现这一目标的方法。
655

被折叠的 条评论
为什么被折叠?



