is_lock_free() return 可以对某些数据类型为真而对另一种数据类型为假吗?
Can is_lock_free() return true for some data types and false for another one?
我知道 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();
}
Can is_lock_free() return true for some data types and false for another one?
是的,可以。显示的程序可能会输出 0 1.
事实上,如果不是这种情况,那么函数就没有意义成为模板的成员。
我知道 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();
}
Can is_lock_free() return true for some data types and false for another one?
是的,可以。显示的程序可能会输出 0 1.
事实上,如果不是这种情况,那么函数就没有意义成为模板的成员。