败犬日报 2024-10-10
败犬日报 2024-10-10
1. 内存序 acq-rel 和 seq-cst 的区别
seq-cst 是最强的内存模型,所有线程里标记为 seq-cst 的原子操作对所有线程都是同一个顺序。
而 acq-rel 只保证了一个线程内的重排关系。
不理解的话可以只用 seq-cst。
2. 显式删除移动构造函数
如果不显式删除移动构造函数,调用时会尝试拷贝构造函数。
cpp
class Foo {
public:
Foo() = default;
Foo(const Foo& other) {}
};
int main() {
Foo f1;
Foo f2 = std::move(f1); // call Foo(const Foo& other)
return 0;
}如果调用显式删除移动构造函数(Foo(Foo&&) = delete;)就会编译报错。