Namespaces
Variants
Views
Actions

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

From cppreference.com
< cpp‎ | named req
m (Text replace - "{{cpp|" to "{{c|")
Line 25: Line 25:
 
{{tdcl list begin}}
 
{{tdcl list begin}}
 
{{tdcl list hitem | Expression | Effects}}
 
{{tdcl list hitem | Expression | Effects}}
{{tdcl list item | {{cpp|1=Type a = v;}} | {{tt|a}} is equivalent to {{tt|v}}, where {{tt|rv}} is an instance of {{tt|Type}}. {{tt|v}} must be unchanged.}}
+
{{tdcl list item | {{c|1=Type a = v;}} | {{tt|a}} is equivalent to {{tt|v}}, where {{tt|rv}} is an instance of {{tt|Type}}. {{tt|v}} must be unchanged.}}
{{tdcl list item | {{cpp|Type(v);}} |  a temporary object of type {{tt|Type}} is equivalent to {{tt|v}}, where {{tt|v}} is an instance of {{tt|Type}}. {{tt|v}} must be unchanged. }}
+
{{tdcl list item | {{c|Type(v);}} |  a temporary object of type {{tt|Type}} is equivalent to {{tt|v}}, where {{tt|v}} is an instance of {{tt|Type}}. {{tt|v}} must be unchanged. }}
 
{{tdcl list end}}
 
{{tdcl list end}}
 
}}
 
}}

Revision as of 18:51, 19 April 2012

Template:cpp/concept/title Template:cpp/concept/sidebar

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:

Template:tdcl list begin Template:tdcl list hitem Template:tdcl list item Template:tdcl list item Template:tdcl list end

See also

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