如何使用`-rewrite-objc`将`.c`中的块转换为ARC中的右.cpp`文件?

时间:2016-09-06 05:07:21

标签: ios objective-c clang

在书中, Pro for iOS和OS X的多线程和内存管理,第2.3节,作者说下面的代码可以转换为.cpp代码:

typedef int (^blk_t)(int);
blk_t func(int rate) {
    return ^(int count){return rate * count;};
}

.cpp代码:

blk func(int rate) {
    blk_t tmp = &__func_block_impl_0 (
        __func_block_func_0, &__func_block_desc_0_DATA, rate
    );
    tmp = objc_retainBlock(tmp);
    return objc_autoreleaseReturnValue(tmp);
}

但我无法使用clang -rewrite-objc -fobjc-arc block.c来获取它,这是我的结果,如下:

enter image description here

那么,我怎样才能得到正确的书籍描述结果呢?什么是正确的clang命令,它可以将ARC中的c / cpp / objc转换为cpp?

1 个答案:

答案 0 :(得分:0)

使用clang -rewrite-objc fileName.c/m尝试。