我有一个使用许多不安全功能的大型代码库,例如gmtime
和strtok
。与其尝试遍历代码库并替换掉所有这些批发内容,不如让编译器在看到它们时发出警告或错误(向维护开发人员强调问题)。使用GCC可以吗?
我已经知道了__attribute__((deprecated))
,但是AFAIK我无法使用它,因为我无法控制声明这些函数的头文件。
最佳答案
创建一个自定义 header deprecated.h
。在其中,创建您自己的包装函数,即deprecated_strtok()
等仅调用strtok
的函数。用__attribute__((deprecated))
标记那些。在这些定义之下,#define strtok deprecated_strtok
。最后,使用-include deprecated.h
关于c++ - 将库功能标记为已弃用/不可用,而无需修改其源代码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1601261/