Showing content from https://timsong-cpp.github.io/cppwp/n4659/utility.requirements below:
[utility.requirements]
Expression Return type Assertion/note Default pre-/post-condition X::pointer T* X::const_pointer 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> X::value_type Identical to T X::size_type unsigned integer type a type that can represent the size of the largest object in the allocation model. make_unsigned_t<X::difference_type> X::difference_type signed integer 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 Y For all U (including T), Y::template rebind<T>::other is X. See Note A, below. *p T& *q const T& *q refers to the same object as *p p->m type of T::m Requires: (*p).m is well-defined. equivalent to (*p).m q->m type of T::m Requires: (*q).m is well-defined. equivalent to (*q).m static_cast<X::pointer>(w) X::pointer static_cast<X::pointer>(w) == p static_cast<X::const_pointer>(x) X::const_pointer static_cast< X::const_pointer>(x) == q pointer_traits<X::pointer>::pointer_to(r) X::pointer a.allocate(n) X::pointer Memory is allocated for n objects of type T but objects are not constructed. allocate may throw an appropriate exception.175 [ Note: If n == 0, the return value is unspecified. — end note ] a.allocate(n, y) X::pointer Same as a.allocate(n). The use of y is unspecified, but it is intended as an aid to locality. a.allocate(n) a.deallocate(p,n) (not used) Requires: p shall be a value returned by an earlier call to allocate that has not been invalidated by an intervening call to deallocate. n shall match the value passed to allocate to obtain this memory.
Throws: Nothing. a.max_size() X::size_type the largest value that can meaningfully be passed to X::allocate() numeric_limits<size_type>::max() / sizeof(value_type) a1 == a2 bool 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. a1 != a2 bool same as !(a1 == a2) a == b bool same as a == Y::rebind<T>::other(b) a != b bool same as !(a == b) X u(a);
X u = a; Shall not exit via an exception.
Postconditions: u == a X u(b); 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: u is equal to the prior value of a. X u(std::move(b)); Shall not exit via an exception.
Postconditions: u is equal to the prior value of X(b). a.construct(c, args) (not used) Effects: Constructs an object of type C at c ::new ((void*)c) C(forward<Args>(args)...) a.destroy(c) (not used) Effects: Destroys the object at c c->~C() a.select_on_container_copy_construction() X Typically returns either a or X() return a; 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. false_type 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. false_type 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. false_type X::is_always_equal 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) values a1, a2 of type X. is_empty<X>::type
RetroSearch is an open source project built by @garambo
| Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4