gpt4 book ai didi

c++ - 如何处理头文件中的非ARC代码?

转载 作者:行者123 更新时间:2023-11-30 04:05:56 25 4
gpt4 key购买 nike

我的项目结构

MainProject (ARC)    SubProject(Non-ARC)        Boost library(i.e. Popular C++ library here is a link http://www.boost.org/) 

问题:
Boost库的头文件之一(intrusive_ptr.h)有一个带有“retain”语句的内联函数(该文件由某人编辑并且在“SubProject(Non-ARC)”中工作正常) .该头文件是公开的,许多子项目文件都导入到“MainProject”中,并且这些文件引用了该头文件。因此,间接地,该文件来自基于 ARC 的 MainProject。这就是编译器拒绝编译的原因。

我所知道或尝试过的:
我知道如何设置非 ARcflags,但我们只能为 .m 文件(仅可编译文件)设置,不能在 .h 文件上设置。如果有人可以帮助我或建议我任何开箱即用的解决方案。

有兴趣查看“intrusive_ptr.h”的人可以在这里找到intrusive_ptr.h .此文件是 boost 库的一部分,因此,建议也应考虑此库。

如有任何帮助或指示,我们将不胜感激。

最佳答案

您可以使用预处理器通过 this answer 中的技术更改您的头文件

#if __has_feature(objc_arc)
//ARC-specific things
#else
//Non-ARC specific things
#endif

关于c++ - 如何处理头文件中的非ARC代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23080665/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com