我有A级
struct A
{
A() = delete;
A(const A&) = default;
A& operator=(const A&) = default;
A(A&&) = default;
A& operator=(A&&) = default;
explicit A(int i) ....
// a few explicit constructors
}
当我试图获取存储在 unordered_map 中的 strcut A 时,如下所示:
auto a = my_map[key_];
我明白了
非法使用删除方法
错误。我的理解是这是一个复制构造,但我不知道为什么编译器在赋值之前调用默认构造函数。