Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 如何使用std::atomic<;布尔>;在调度区?_Objective C_Macos_Grand Central Dispatch_Atomic - Fatal编程技术网

Objective c 如何使用std::atomic<;布尔>;在调度区?

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

以下代码中存在调用隐式删除复制构造函数的“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(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的原子属性?这个信号量的目的是什么?