[library] (original) (raw)

X​::​pointer is convertible to X​::​const_­pointer

pointer_­traits<X​::​​pointer>​::​​rebind<const T>

X​::​void_­pointer
Y​::​void_­pointer

X​::​pointer is convertible to X​::​void_­pointer.

X​::​void_­pointer and Y​::​void_­pointer are the same type.

pointer_­traits<X​::​​pointer>​::​​rebind<void>

X​::​const_­void_­pointer
Y​::​const_­void_­pointer

X​::​pointer, X​::​const_­pointer, and X​::​void_­pointer are convertible to X​::​const_­void_­pointer.

X​::​const_­void_­pointer and Y​::​const_­void_­pointer are the same type.

pointer_­traits<X​::​​pointer>​::​​rebind<const void>

a type that can represent the size of the largest object in the allocation model

make_­unsigned_­t<X​::​​difference_­type>

a type that can represent the difference between any two pointers in the allocation model

pointer_­traits<X​::​​pointer>​::​​difference_­type

typename X​::​template rebind<U>​::​other

For all U (including T), Y​::​template rebind<T>​::​other is X.

*q refers to the same object as *p.

Preconditions: (*p).m is well-defined.

Preconditions: (*q).m is well-defined.

static_­cast<​X​::​pointer​>(w)

static_­cast<X​::​pointer>(w) == p

static_­cast<​X​::​const_­pointer​>(x)

static_­cast< X​::​const_­pointer​>(x) == q

pointer_­traits<​X​::​pointer​>​::​pointer_­to(r)

Memory is allocated for an array of n Tand such an object is created but array elements are not constructed.

[Example 1:

When reusing storage denoted by some pointer value p,launder(reinterpret_­cast<T*>(new (p) byte[n * sizeof(T)]))can be used to implicitly create a suitable array object and obtain a pointer to it.

— _end example_]

allocate may throw an appropriate exception.176

[Note 1:

If n == 0, the return value is unspecified.

— _end note_]

Same as a.allocate(n).

The use of y is unspecified, but it is intended as an aid to locality.

Preconditions: p is a value returned by an earlier call to allocate that has not been invalidated by an intervening call to deallocate.

n matches the value passed to allocate to obtain this memory.

the largest value that can meaningfully be passed to X​::​allocate()

numeric_­limits<size_­type>​::​max() / sizeof​(value_­type)

Returns true only if storage allocated from each can be deallocated via the other.

operator== shall be reflexive, symmetric, and transitive, and shall not exit via an exception.

same as a == Y​::​rebind<T>​::​other(b)

Shall not exit via an exception.

Shall not exit via an exception.

Postconditions: Y(u) == b, u == X(b)

X u(std​::​move(a));
X u = std​::​move(a);

Shall not exit via an exception.

Postconditions: The value of a is unchanged and is equal to u.

Shall not exit via an exception.

Postconditions: u is equal to the prior value of X(b).

Effects: Constructs an object of type C atc.

construct_­at(c, std​::​​forward<Args>​(args)...)

Effects: Destroys the object at c

a.select_­on_­container_­copy_­construction()

Typically returns either a or X().

X​::​propagate_­on_­container_­copy_­assignment

Identical to or derived from true_­type or false_­type

true_­type only if an allocator of type X should be copied when the client container is copy-assigned.

See Note B, below.

X​::​propagate_­on_­container_­move_­assignment

Identical to or derived from true_­type or false_­type

true_­type only if an allocator of type X should be moved when the client container is move-assigned.

See Note B, below.

X​::​propagate_­on_­- container_­swap

Identical to or derived from true_­type or false_­type

true_­type only if an allocator of type X should be swapped when the client container is swapped.

See Note B, below.

Identical to or derived from true_­type or false_­type

true_­type only if the expression a1 == a2 is guaranteed to be true for any two (possibly const) valuesa1, a2 of type X.