c++ - is_lock_free() 可以为某些数据类型返回 true 并为另一种数据类型返回 false 吗?
问题描述
我知道这is_lock_free
取决于硬件,但是当我在 ADT 上使用它时,它返回 false 但int
类型为 true。这怎么可能?
#include <iostream>
#include <atomic>
struct myType {
size_t ID{};
size_t to{};
};
int main() {
std::atomic<myType> i{ };
std::cout << "\n" << i.is_lock_free();
std::atomic j { 1};
std::cout << "\n" << j.is_lock_free();
}
解决方案
is_lock_free() 可以为某些数据类型返回 true 并为另一种数据类型返回 false 吗?
是的,它可以。显示的程序可以输出 0 1。
事实上,如果不是这种情况,那么函数就没有必要成为模板的成员了。
推荐阅读
- r - 我可以使用 mapply 拟合不同的回归模型吗?
- sql - 数据字段 - 在新数据字段中搜索和写入值 (Oracle)
- javascript - ESLint 规则确保 JSX 文本节点不与其他节点混合
- c# - 绑定 TabItem 模板
- boto3 - Boto3 忽略 AWS_CONTAINER_CREDENTIALS_RELATIVE_URI
- c++ - 使用 GTest 多次重复多线程测试的正确方法是什么?
- r - 如何创建具有不同行数 RData 的 data.frame
- swift - Swift/Firebase - 检查用户是否通过 Facebook 和 Google 登录
- arduino - 需要帮助理解从一个 Arduino 到另一个
- ios - 有没有办法建议用户在收到视频通话时解锁设备?