Copy Constructible
Description
A type is Copy Constructible if it is possible to copy objects of that
type.
Notation
T
|
is type that is a model of Copy Constructible
|
t
|
is an object of type T
|
u
|
is an object of type const T
|
Definitions
Valid expressions
Name
|
Expression
|
Return type
|
Semantics
|
Copy constructor
|
T(t)
|
T
|
t is equivalent to T(t)
|
Copy constructor
|
T(u)
|
T
|
u is equivalent to T(u)
|
Destructor
|
t.~T()
|
T
|
|
Address Operator
|
&t
|
T*
|
denotes the address of t
|
Address Operator
|
&u
|
T*
|
denotes the address of u
|
Models
Concept Checking Class
template <class T>
struct CopyConstructibleConcept
{
void constraints() {
T a(b); // require copy constructor
T* ptr = &a; // require address of operator
const_constraints(a);
ignore_unused_variable_warning(ptr);
}
void const_constraints(const T& a) {
T c(a); // require const copy constructor
const T* ptr = &a; // require const address of operator
ignore_unused_variable_warning(c);
ignore_unused_variable_warning(ptr);
}
T b;
};
See also
Default Constructible
and
Assignable