Dan*_*ica 5
你的解释并不完全正确。编译器并没有特别寻找operator=(A&&)
. 它只是在寻找任何operator=
可以被要求完成该任务的人。
现在,移动赋值运算符operator=(A&&)
根本不存在。但是,复制赋值运算符operator=(const A&)
确实存在,只是定义为删除。
因此,复制赋值运算符是唯一可用于该赋值的运算符(因为常量左值引用可以绑定右值)。编译器尝试使用它,但发现它已被删除,这会触发编译错误。
更多推荐
赋值,运算符,编译器
Dan*_*ica 5
你的解释并不完全正确。编译器并没有特别寻找operator=(A&&)
. 它只是在寻找任何operator=
可以被要求完成该任务的人。
现在,移动赋值运算符operator=(A&&)
根本不存在。但是,复制赋值运算符operator=(const A&)
确实存在,只是定义为删除。
因此,复制赋值运算符是唯一可用于该赋值的运算符(因为常量左值引用可以绑定右值)。编译器尝试使用它,但发现它已被删除,这会触发编译错误。
更多推荐
赋值,运算符,编译器
发布评论