Objective c 如何使用std::atomic<;布尔>;在调度区?
以下代码中存在调用隐式删除复制构造函数的“std::atomic”错误,std::mutex也是同样的情况。Objective c 如何使用std::atomic<;布尔>;在调度区?,objective-c,macos,grand-central-dispatch,atomic,Objective C,Macos,Grand Central Dispatch,Atomic,以下代码中存在调用隐式删除复制构造函数的“std::atomic”错误,std::mutex也是同样的情况。 我只能使用串行队列进行同步 __block std::atomic<bool> balance(false); // Call to implicitly-deleted copy constructor of 'std::atomic<bool>' error dispatch_block_t work = dispatch_block_create(stati
我只能使用串行队列进行同步
__block std::atomic<bool> balance(false); // Call to implicitly-deleted copy constructor of 'std::atomic<bool>' error
dispatch_block_t work = dispatch_block_create(static_cast<dispatch_block_flags_t>(0), ^{
if (!balance) {
long l = dispatch_semaphore_signal(semaphore);
NSLog(@"task 2 %d", l);
balance = true;
}
});
\uuu块标准::原子平衡(假);//调用“std::atomic”错误的隐式删除副本构造函数
调度块工作=调度块创建(静态转换(0)^{
如果(!余额){
长l=调度信号灯信号灯(信号灯);
NSLog(@“任务2%d”,l);
平衡=正确;
}
});
你能帮我一下吗?非常感谢
^{
看起来不像c++11。objective-cobjective-c中的Grand Central Dispatch不是c++11或与它不兼容,因此我删除了该标记。这非常令人困惑。std::atomic
看起来不像objective-c。如果您处理的是atomic并且只是设置其值,那么如果只是设置va,为什么还要添加另一层同步呢lue?或者,如果使用同步,为什么要使用原子?如果您想要原子属性而不是同步属性,为什么不使用Objective-C的原子属性?这个信号量的目的是什么?