cpp/concepts/copy constructible

The concept is satisfied if  is an lvalue reference type, or if it is a  object type where an object of that type can constructed from a (possibly const) lvalue or const rvalue of that type in both direct- and copy-initialization contexts with the usual semantics (a copy is constructed with the source unchanged).

Semantic requirements
If is an object type, then  is modeled only if given the following are true:
 * , an lvalue of type (possibly ) or an rvalue of type ,
 * After the definition, is equal to  and  is not modified;
 * is equal to and does not modify.