 
|  |  | 
| Category: utilities | Component type: concept | 
| X | A type that is a model of Assignable | 
| x, y | Object of type X | 
| Name | Expression | Type requirements | Return type | 
|---|---|---|---|
| Copy constructor | X(x) | X | |
| Copy constructor | X x(y); X x = y; | ||
| Assignment | x = y [1] | X& | |
| Swap | swap(x,y) | void | 
| Name | Expression | Precondition | Semantics | Postcondition | 
|---|---|---|---|---|
| Copy constructor | X(x) | X(x) is a copy of x [2] | ||
| Copy constructor | X(x) | X(x) is a copy of x [2] | ||
| Copy constructor | X x(y); X x = y; | x is a copy of y [2] | ||
| Assignment | x = y [1] | x is a copy of y [2] | ||
| Swap | swap(x,y) | Equivalent to 
{
  X tmp = x; 
  x = y; 
  y = tmp; 
}
 | 
[1] One implication of this requirement is that a const type is not Assignable. For example, const int is not Assignable: if x is declared to be of type const int, then x = 7 is illegal. Similarly, the type pair<const int, int> is not Assignable.
[2] The reason this says "x is a copy of y", rather than "x == y", is that operator== is not necessarily defined: equality is not a requirement of Assignable. If the type X is EqualityComparable as well as Assignable, then a copy of x should compare equal to x.
| Contact Us | Site Map | Trademarks | Privacy | Using this site means you accept its Terms of Use | 
| Copyright © 1993-2006 Silicon Graphics, Inc. All rights reserved. |