什么时候编译器要求小弟我实现operator=()? 不总是

什么时候编译器要求我实现operator=()? 不总是啊
有时候我写一个类,编译器会提示我,必须实现operator=().
我并没有实现拷贝构造函数啊,只是实现了一个参数非空的构造函数而已。

是不是有一个参数非空的构造函数,VC编译器就要求我要实现operator=()呢?
C++标准有这样的规定么?

------解决方案--------------------
有啊,比如在使用标准库中的容器时,用sort排序会要求对象的类实现比较操作符,否则就编译不通过了
------解决方案--------------------
探讨
引用:

隐式声明的operator=如果没定义成=delete,只会逐成员复制,对于指针也就是浅复制。如果需要保持所有权(在析构函数内delete),那么需要的是深复制,否则复制以后多次析构delete相同指针值会引起UB。
有时候不会隐式声明非=delete的operator=。如果你还要用,那么就需要自己写了。
ISO C++11
12.8
18 If the c……