我知道以下代码无法编译,因为 A 的移动构造函数被删除,因为互斥锁不可移动。
class A {
public:
A(int i) {}
private:
std::mutex m;
};
int main() {
std::vector<A> v;
v.emplace_back(2);
}
但是,如果我希望A
将我的存储在 std 容器中,我应该怎么做呢?我很乐意A
在容器“内部”建造。
我知道以下代码无法编译,因为 A 的移动构造函数被删除,因为互斥锁不可移动。
class A {
public:
A(int i) {}
private:
std::mutex m;
};
int main() {
std::vector<A> v;
v.emplace_back(2);
}
但是,如果我希望A
将我的存储在 std 容器中,我应该怎么做呢?我很乐意A
在容器“内部”建造。