cpp/named req/CopyAssignable: Difference between revisions
From cppreference.com
m →See also: + assignable_from |
Andreas Krug (talk | contribs) m fmt, . |
||
| Line 5: | Line 5: | ||
===Requirements=== | ===Requirements=== | ||
The type {{tt|T}} satisfies {{named req/core|CopyAssignable}} if | The type {{tt|T}} satisfies {{named req/core|CopyAssignable}} if | ||
* The type {{tt|T}} satisfies {{named req|MoveAssignable}}, and | * The type {{tt|T}} satisfies {{named req|MoveAssignable}}, and | ||
Given | Given | ||
* {{tt|t}}, a modifiable [[cpp/language/value_category|lvalue expression]] of type {{tt|T}} | * {{tt|t}}, a modifiable [[cpp/language/value_category|lvalue expression]] of type {{tt|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|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}} | ||
The following expressions must be valid and have their specified effects | The following expressions must be valid and have their specified effects | ||
{|table class=wikitable | {|table class=wikitable | ||
| Line 20: | Line 17: | ||
!Expression||Return type||Return value||Post-conditions | !Expression||Return type||Return value||Post-conditions | ||
|- | |- | ||
| {{c|1=t = v}} | |{{c|1=t = v}} | ||
| {{tt|T&}} | |{{tt|T&}} | ||
| {{tt|t}} | |{{tt|t}} | ||
| The value of {{tt|t}} is equivalent to the value of {{tt|v}}. | |The value of {{tt|t}} is equivalent to the value of {{tt|v}}. | ||
The value of {{tt|v}} is unchanged. | The value of {{tt|v}} is unchanged. | ||
|} | |} | ||
| Line 29: | Line 26: | ||
===See also=== | ===See also=== | ||
{{dsc begin}} | {{dsc begin}} | ||
{{dsc inc | cpp/types/dsc is_copy_assignable}} | {{dsc inc|cpp/types/dsc is_copy_assignable}} | ||
{{dsc inc | cpp/concepts/dsc assignable_from}} | {{dsc inc|cpp/concepts/dsc assignable_from}} | ||
{{dsc end}} | {{dsc end}} | ||
{{langlinks|de|es|fr|it|ja|pt|ru|zh}} | {{langlinks|de|es|fr|it|ja|pt|ru|zh}} | ||
Latest revision as of 18:36, 8 August 2023
Specifies that an instance of the type can be copy-assigned from an lvalue expression.
Requirements
The type T satisfies CopyAssignable if
- The type
Tsatisfies MoveAssignable, and
Given
t, a modifiable lvalue expression of typeT,v, an lvalue expression of typeTorconst Tor an rvalue expression of typeconst T.
The following expressions must be valid and have their specified effects.
| Expression | Return type | Return value | Post-conditions |
|---|---|---|---|
t = v
|
T&
|
t
|
The value of t is equivalent to the value of v.
The value of |
See also
(C++11)(C++11)(C++11) |
checks if a type has a copy assignment operator (class template) |
(C++20) |
specifies that a type is assignable from another type (concept) |