|
| template<typename T , bool TrackLast, typename Allocator = PrimitiveAllocator> |
| using | LListFastSize = LinkedList< T, true, TrackLast, Allocator > |
| | LinkedList with enabled track of size.
|
| |
| template<typename T , bool TrackSize, typename Allocator = PrimitiveAllocator> |
| using | LListFastLast = LinkedList< T, TrackSize, true, Allocator > |
| | LinkedList with enabled track of last element.
|
| |
| template<typename T , typename Allocator = PrimitiveAllocator> |
| using | LListTiny = LinkedList< T, false, false, Allocator > |
| | LinkedList without size and last element tracking.
|
| |
| template<typename T , typename Allocator = PrimitiveAllocator> |
| using | LListFat = LinkedList< T, true, true, Allocator > |
| | LinkedList with size and last element tracking.
|
| |
| template<typename T > |
| using | type_identity_t = type_identity< T >::type |
| | type_identity_t
|
| |
| template<bool val> |
| using | bool_constant = integral_constant< val > |
| | bool_constant
|
| |
| using | true_type = bool_constant< true > |
| | true_type
|
| |
| using | false_type = bool_constant< false > |
| | false_type
|
| |
| template<typename T > |
| using | remove_const_t = remove_const< T >::type |
| | remove_const_t
|
| |
| template<typename T > |
| using | remove_ref_t = remove_ref< T >::type |
| | remove_ref_t
|
| |
| template<bool Cond, typename IfTrue , typename IfFalse > |
| using | conditional_t = conditional< Cond, IfTrue, IfFalse >::type |
| | conditional_t
|
| |
| template<bool Cond, typename T = void> |
| using | enable_if_t = enable_if< Cond, T >::type |
| | enable_if_t
|
| |
| template<typename... > |
| using | void_t = void |
| |
| template<typename F , typename... Args> |
| using | invoke_result_t = invoke_result< F, Args... >::type |
| | invoke_result_t
|
| |
|
| template<InputIterator Iter1, InputIterator Iter2, typename Cmp = compare_three_way> |
| auto | lexicographical_compare_three_way (Iter1 first1, Iter1 last1, Iter2 first2, Iter2 last2, Cmp cmp=Cmp()) |
| | Compares ranges lexicographically using C++20 three-way comparation.
|
| |
template<InputIterator Iter1, InputIterator Iter2, typename Pred = equal_to>
requires Predicate<Pred, typename IteratorTraits<Iter1>::reference, typename IteratorTraits<Iter2>::reference> |
| bool | equal (Iter1 first1, Iter1 last1, Iter2 first2, Pred pred=Pred()) |
| | Checks whether given ranges are equal.
|
| |
template<InputIterator Iter1, InputIterator Iter2, typename Pred = equal_to>
requires Predicate<Pred, typename IteratorTraits<Iter1>::reference, typename IteratorTraits<Iter2>::reference> |
| bool | equal (Iter1 first1, Iter1 last1, Iter2 first2, Iter2 last2, Pred pred=Pred()) |
| | Checks whether given ranges are equal.
|
| |
| template<typename T , bool TrackSize = true, bool TrackLast = true, typename Allocator = PrimitiveAllocator> |
| void | swap (LinkedList< T, TrackSize, TrackLast, Allocator > &a, LinkedList< T, TrackSize, TrackLast, Allocator > &b) |
| | See LinkedList::swap
|
| |
| template<InputIterator Iter, typename Allocator = PrimitiveAllocator> |
| | LinkedList (Iter, Iter, Allocator=Allocator()) -> LinkedList< typename IteratorTraits< Iter >::value_type, true, true, PrimitiveAllocator > |
| |
| template<InputIterator Iter, typename Allocator = PrimitiveAllocator> |
| | Vector (Iter, Iter, Allocator=Allocator()) -> Vector< typename IteratorTraits< Iter >::value_type, Allocator > |
| |
| template<InputIterator Iter> |
| auto | distance (Iter first, Iter last) -> IteratorTraits< Iter >::difference_type |
| | Returns the number of elements in [first, last).
|
| |
| template<InputIterator Iter, typename Distance > |
| void | advance (Iter &it, Distance dist) |
| | Increments given iterator by dist.
|
| |
| template<InputIterator Iter> |
| Iter | next (Iter it, typename IteratorTraits< Iter >::difference_type n=1) |
| | Returns the n-th successor of given iterator.
|
| |
| template<BidirectionalIterator Iter> |
| Iter | prev (Iter it, typename IteratorTraits< Iter >::difference_type n=1) |
| | Returns the n-th predecessor of given iterator. If n < 0, will chose n-th successor.
|
| |
| template<typename T > |
| constexpr remove_ref_t< T > && | move (T &&value) noexcept |
| | Convert a value to xvalue.
|
| |
| template<typename T > |
| constexpr T && | forward (remove_ref_t< T > &value) noexcept |
| | Forward a lvalue.
|
| |
template<typename T >
requires (!is_lvalue_ref_v<T>) |
| constexpr T && | forward (remove_ref_t< T > &&value) noexcept |
| | Forward a rvalue.
|
| |
| template<typename T > |
| void | swap (T &x, T &y) |
| | Swap values.
|
| |
| template<typename T > |
| T && | declval () |
| | declval
|
| |
A metafunction that always equals to void, used for SFINAE checking(detecting valid types)
Example: template <typename T, typename = void_t> struct SomeStruct {};
template <typename T> struct SomeStruct<T, void_t<T::value_type>> {...};
Here the partial specialization is always chosen when T::value_type is valid, otherwise SFINAE works and first definition is chosen.
Checks whether given ranges are equal.
Given Predicate must return boolean-convertible value.
Time complexity: O(min(last1 - first1, last2 - first2))
- Parameters
-
| first1 | Start of the 1-st range |
| last1 | End of the 1-st range |
| first2 | Start of the 2-nd range |
| pred | Predicate that compares range elements |
- Returns
- true if ranges are equal on Predicate. false otherwise.
- Exceptions
-
| Almost | always noexcept. In fact, the same specification as operations on iterators and calling predicate. |
See equal overload for InputIterator constraints. In addition to it, this overload firstly checks length of the compared ranges to enable early inequality detection.
Time complexity: 1) If last1 - first1 != last2 - first2: O(1), 2) Otherwise: O(min(last1 - first1, last2 - first2))
template<InputIterator Iter1, InputIterator Iter2,
typename Cmp = compare_three_way>
Compares ranges lexicographically using C++20 three-way comparation.
Compares elements iteratively, until either non-equal were found or some range was exausted. In the 2-nd case, detects longer range as greater.
Time complexity: O(min(last1 - first1, last2 - first2))
- Parameters
-
| first1 | - Start of the 1-st range |
| last1 | - End of the 1-st range |
| first2 | - Start of the 2-nd range |
| last2 | - End of the 2-nd range |
| cmp | - Comparator that behaves as <=>. 'compare_three_way' is default one. |
- Returns
- The relation of the ranges(like std::strong_ordering::less/greater/equal, etc.)
- Exceptions
-
| Almost | always noexcept. In fact, the same specification as iterators operations and call of comparator. |