Namespaces
Variants
Views
Actions

Difference between revisions of "cpp/named req/CopyConstructible"

From cppreference.com
< cpp‎ | named req
(fmt)
m (explain u)
Line 11: Line 11:
 
Given
 
Given
 
* {{tt|v}}, an [[cpp/language/value_category|lvalue]] expression of type {{tt|T}} or {{tt|const T}} or an [[cpp/language/value_category|rvalue]] expression of type {{tt|const T}}
 
* {{tt|v}}, an [[cpp/language/value_category|lvalue]] expression of type {{tt|T}} or {{tt|const T}} or an [[cpp/language/value_category|rvalue]] expression of type {{tt|const T}}
 +
* {{tt|u}}, an arbitrary identifier
  
 
The following expressions must be valid and have their specified effects
 
The following expressions must be valid and have their specified effects

Revision as of 12:01, 28 December 2013

Template:cpp/concept/title Template:cpp/concept/navbar

Specifies that an instance of the type can be copy-constructed (copied).

Requirements

The type T satisfies CopyConstructible if

Given

  • v, an lvalue expression of type T or const T or an rvalue expression of type const 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 v is unchanged

T(v) The value of T(v) is equivalent to the value of v.

The value of v is unchanged.

See also

checks if a type has a copy constructor
(class template) [edit]