C++ concepts: CopyConstructible

< cpp‎ | concept
Revision as of 15:23, 2 November 2012 by P12bot (Talk | contribs)


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

This concept implies MoveConstructible.


The type must implement the following functions:


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]