Namespaces
Variants
Views
Actions

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

From cppreference.com
< cpp‎ | named req
m (Text replace - "/sidebar" to "/navbar")
m (r2.7.3) (Robot: Adding de, es, fr, it, ja, pt, ru, zh)
Line 34: Line 34:
 
{{dcl list template | cpp/types/dcl list is_copy_constructible}}
 
{{dcl list template | cpp/types/dcl list is_copy_constructible}}
 
{{dcl list end}}
 
{{dcl list end}}
 +
 +
[[de:cpp/concept/CopyConstructible]]
 +
[[es:cpp/concept/CopyConstructible]]
 +
[[fr:cpp/concept/CopyConstructible]]
 +
[[it:cpp/concept/CopyConstructible]]
 +
[[ja:cpp/concept/CopyConstructible]]
 +
[[pt:cpp/concept/CopyConstructible]]
 +
[[ru:cpp/concept/CopyConstructible]]
 +
[[zh:cpp/concept/CopyConstructible]]

Revision as of 14:23, 2 November 2012

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

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

This concept implies Template:concept.

Requirements

The type must implement the following functions:

Type::Type

Type::Type( Type& other );

Type::Type( const Type& other );
Type::Type( volatile Type& other );

Type::Type( const volatile Type& other );
(One of the variants is sufficient)

Copy constructor: constructs an instance of a type with the contents of other. The internal state of other is not modified.

The following expressions must have the specified effects:

Expression Effects
Type a = v; a is equivalent to v, where rv is an instance of Type. v must be unchanged.
Type(v); a temporary object of type Type is equivalent to v, where v is an instance of Type. v must be unchanged.

See also

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