C++ named requirements: CopyConstructible
cppreference.com
Specifies that an instance of the type can be copy-constructed from an lvalue expression.
Requirements
The type T satisfies CopyConstructible if
- The type
Tsatisfies MoveConstructible, and
Given
v, an lvalue expression of typeTorconst Tor an rvalue expression of typeconst Tu, an arbitrary identifier
The following expressions must be valid and have their specified effects
| Expression | Post-conditions |
|---|---|
T u = v;
|
The value of u is equivalent to the value of v.
The value of |
T(v)
|
The value of T(v) is equivalent to the value of v.
The value of |
|
The expression |
(until C++11) |
Notes
Until C++11, classes that overloaded operator& were not CopyConstructible and thus weren't usable in the standard library containers. As of C++11, the standard library uses std::addressof whenever the address of an object is needed.
See also
(C++11) (C++11) (C++11) |
checks if a type has a copy constructor (class template) |
(C++20) |
타입의 객체가 복사 생성되었거나 이동 생성되었음을 명시합니다 (concept) |