【发布时间】:2025-11-28 11:05:03
【问题描述】:
假设我们要创建自己的CFRetain 和CFRelease 函数,称为MyRetain 和MyRelease。对于后者,我们可以写成:
void MyRelease(CFTypeRef __attribute__((cf_consumed)) typeRef);
// or
void MyRelease(CFTypeRef CF_RELEASES_ARGUMENT typeRef);
但是,对于MyRetain,我们似乎运气不佳。我会怀疑存在这样的事情:
void MyRetain(CFTypeRef __attribute__((cf_retained)) typeRef);
// or
void MyRetain(CFTypeRef CF_RETAINS_ARGUMENT typeRef);
这仅仅是一个遗漏吗?有没有我没有看到的替代方案?
【问题讨论】:
标签: memory-management clang core-foundation clang-static-analyzer