C++ 具名要求:可复制构造 (CopyConstructible)
来自cppreference.com
                    
                                        
                    
                    
                                                            
                    指定该类型的实例可以从左值表达式进行复制构造。
要求
以下情况下,类型 T 满足可复制构造 (CopyConstructible) :
-  类型 
T满足可移动构造 (MoveConstructible) ,且 
给定
下列表达式必须合法且拥有其指定的效果
| 表达式 | 后条件 | 
|---|---|
| T u = v; | u 的值等价于 v 的值。不更改 v 的值。
 | 
| T(v) | T(v) 的值等价于 v 的值。不更改 v 的值。
 | 
| 
 表达式 v.~T() 亦必须合法,且对于左值   | 
(C++11 前) | 
注解
C++11 前,重载了 operator& 的类并非可复制构造 (CopyConstructible) ,从而不可用于标准库容器。C++11 开始,标准库在凡是需要对象地址时都使用 std::addressof。
参阅
|    (C++11)(C++11)(C++11)  | 
  检查类型是否拥有复制构造函数  (类模板)  | 
|    (C++20)  | 
  指定能复制构造和移动构造一个类型的对象  (概念)  |