据我所知,std::atomic_is_lock_free是与std::atomic<T>::is_lock_free相对应的c风格的自由函数.
但是这个函数的参数类似于std::atomic_is_lock_free(const std::atomic<T>*)。std::atomic<T>不是c样式的语法,所以std::atomic_is_lock_free不能在c文件中使用。
那么为什么引入这个c风格的免费函数呢?这个有什么用?
编辑:
下面是C++并发在行动中的解释。
--自由函数被设计成与C兼容的,所以它们在所有情况下都使用指针而不是引用。例如.
它说免费功能是为了C-兼容性。但我想不出一个好例子。
发布于 2021-03-11 17:31:46
这两者似乎没有任何区别,因为根据草案语言,这两个函数都需要一个实际的对象,这甚至给出了两个函数的完全相同的描述。
这似乎是在需求“所有相同类型的原子对象的无锁查询的结果是相同的”之前的一个暂停.考虑到这一要求,能够在没有任何对象实例的情况下查询类型是很有用的。
https://stackoverflow.com/questions/66584648
复制相似问题