C++ concepts: CopyConstructible
From cppreference.com
Specifies that an instance of the type can be copy-constructed from an lvalue expression.
[edit] Requirements
The type T satisfies CopyConstructible if
- The type
TsatisfiesMoveConstructible, and
Given
-
v, an lvalue expression of typeTorconst Tor an rvalue expression of typeconst T -
u, 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 v.~T() also must be valid, and, for lvalue |
(until C++11) |
[edit] 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.
[edit] See also
| (C++11)(C++11)(C++11) |
checks if a type has a copy constructor (class template) |