Difference between revisions of "cpp/named req/CopyConstructible"
From cppreference.com
m (link to addressof) |
m (Text replace - "cpp/concept" to "cpp/named req") |
||
Line 1: | Line 1: | ||
− | {{cpp/ | + | {{cpp/named req/title|CopyConstructible}} |
− | {{cpp/ | + | {{cpp/named req/navbar}} |
Specifies that an instance of the type can be copy-constructed from an [[cpp/language/value_category|lvalue expression]]. | Specifies that an instance of the type can be copy-constructed from an [[cpp/language/value_category|lvalue expression]]. | ||
Line 42: | Line 42: | ||
{{dsc end}} | {{dsc end}} | ||
− | [[de:cpp/ | + | [[de:cpp/named req/CopyConstructible]] |
− | [[es:cpp/ | + | [[es:cpp/named req/CopyConstructible]] |
− | [[fr:cpp/ | + | [[fr:cpp/named req/CopyConstructible]] |
− | [[it:cpp/ | + | [[it:cpp/named req/CopyConstructible]] |
− | [[ja:cpp/ | + | [[ja:cpp/named req/CopyConstructible]] |
− | [[pt:cpp/ | + | [[pt:cpp/named req/CopyConstructible]] |
− | [[ru:cpp/ | + | [[ru:cpp/named req/CopyConstructible]] |
− | [[zh:cpp/ | + | [[zh:cpp/named req/CopyConstructible]] |
Revision as of 13:43, 15 June 2018
Specifies that an instance of the type can be copy-constructed from an lvalue expression.
Requirements
The type T
satisfies CopyConstructible
if
- The type
T
satisfies Template:concept, and
Given
-
v
, an lvalue expression of typeT
orconst T
or 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) |
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) |