Книга: Standard Template Library Programmer

Concepts

Assignable

Category: utilities

Component type: concept

Description

A type is Assignable if it is possible to copy objects of that type and to assign values to variables.

Notation

X A type that is a model of Assignable

x, y Object of type X

Valid expressions

Name Expression 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

Expression semantics

Name Expression 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; }

Models

• int

Notes

[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.

See also

DefaultConstructible

Оглавление книги

Оглавление статьи/книги

Генерация: 0.023. Запросов К БД/Cache: 0 / 0
поделиться
Вверх Вниз