|
mimic++ v9.2.1
|
Namespaces | |
| namespace | stacktrace |
Classes | |
| struct | always_false |
| struct | pass_key |
| A helper type that enables fine-grained access control to specific functions without using friend declarations. More... | |
| struct | priority_tag |
| struct | priority_tag< 0u > |
| class | SourceLocation |
| A thin wrapper around general source-location info. More... | |
| class | Stacktrace |
| A simple type-erased stacktrace abstraction. More... | |
| class | StaticString |
| class | StaticString< Char, 0u > |
| struct | type_list |
| A very basic type-list template. More... | |
| struct | type_list_index_of |
| struct | type_list_index_of< type_list< First, Elements... >, T > |
| struct | type_list_index_of< type_list< T, Elements... >, T > |
| struct | type_list_pop_back |
| struct | type_list_populate |
| struct | type_list_populate< Template, type_list< Args... > > |
| struct | type_list_reverse |
Concepts | |
| concept | explicitly_convertible_to |
Determines, whether From can be explicitly converted to To. | |
| concept | nothrow_explicitly_convertible_to |
Determines, whether From can be explicitly converted to To, without throwing. | |
| concept | same_as_any |
Determines, whether T is the same as any type of the pack Others. | |
| concept | satisfies |
Determines, whether T satisfies the specified trait type. | |
| concept | boolean_testable |
Determines, whether B behaves as a the builtin type bool. | |
| concept | weakly_equality_comparable_with |
Determines, whether T can be equality compared with U. | |
Typedefs | |
| template<std::indirectly_readable I, std::indirectly_regular_unary_invocable< I > Projection> | |
| using | projected_value_t |
The alias template projected_value_t obtains the value type by stripping any reference and its topmost cv-qualifiers of the result type of applying Proj to std::iter_value_t<I>&. | |
| template<typename TypeList> | |
| using | type_list_reverse_t = typename type_list_reverse<TypeList>::type |
| template<typename TypeList> | |
| using | type_list_pop_back_t = typename type_list_pop_back<TypeList>::type |
| template<template< typename... > typename Template, typename TypeList> | |
| using | type_list_populate_t = typename type_list_populate<Template, TypeList>::type |
Functions | |
| template<std::ranges::random_access_range Target, std::ranges::random_access_range Control, typename Projection = std::identity, std::indirect_unary_predicate< std::projected< std::ranges::iterator_t< Control >, Projection > > Predicate> requires std::ranges::sized_range<Target> && std::ranges::sized_range<Control> | |
| constexpr std::ranges::borrowed_subrange_t< Target > | partition_by (Target &&targetRange, Control &&controlRange, Predicate predicate, Projection projection={}) |
| Partitions the target range by the predicate results on the control range. | |
| template<std::ranges::borrowed_range Range> | |
| constexpr std::ranges::borrowed_iterator_t< Range > | find_closing_token (Range &&str, std::ranges::range_value_t< Range > const &openingToken, std::ranges::range_value_t< Range > const &closingToken) |
| Finds the next closing token in the given string. | |
| template<std::ranges::borrowed_range Range> | |
| constexpr std::ranges::borrowed_subrange_t< Range > | find_next_unwrapped_token (Range &&str, std::string_view const token, std::ranges::forward_range auto &&opening, std::ranges::forward_range auto &&closing) |
| Finds the next unwrapped token in the given string. | |
| template<std::ranges::forward_range Range, std::ranges::forward_range Prefix> requires std::totally_ordered_with<std::ranges::range_value_t<Range>, Prefix> | |
| constexpr std::ranges::borrowed_subrange_t< Range > | prefix_range (Range &&range, Prefix &&prefix) |
| Returns a view containing all elements, which start with the given prefix. | |
| template<std::copyable T, std::size_t firstN, std::size_t secondN> | |
| constexpr std::array< T, firstN+secondN > | concat_arrays (std::array< T, firstN > const &first, std::array< T, secondN > const &second) |
| Concatenates the given arrays by copying all elements into a new array. | |
| template<std::copyable T, std::size_t firstN, typename... Others> requires (... && std::same_as<T, std::ranges::range_value_t<Others>>) && (... && (0u <= std::tuple_size_v<Others>)) | |
| constexpr auto | concat_arrays (std::array< T, firstN > const &first, Others const &... others) |
| Concatenates the given arrays by copying all elements into a new array. | |
| template<typename To, typename From> | |
| std::enable_if_t< sizeof(To)==sizeof(From) &&std::is_trivially_copyable_v< From > &&std::is_trivially_copyable_v< To >, To > | bit_cast (From const &src) noexcept |
| void | unreachable () |
| Invokes undefined behavior. | |
| template<typename T> requires std::is_enum_v<T> | |
| constexpr std::underlying_type_t< T > | to_underlying (T const value) noexcept |
| template<typename Char, std::size_t length> | |
| StaticString (Char const(&)[length]) -> StaticString< Char, length - 1u > | |
Variables | |
| constexpr detail::binary_find_fn | binary_find {} |
| Finds the specified value within the container and returns an iterator pointing to it. If the value is not found, it returns an iterator to the end of the container. | |
| constexpr detail::contains_fn | contains {} |
| Determines, whether the specified value is contained in the given range. | |
| template<typename TypeList, typename T> | |
| constexpr std::size_t | type_list_index_of_v = type_list_index_of<TypeList, T>::value |
| using mimicpp::util::projected_value_t |
The alias template projected_value_t obtains the value type by stripping any reference and its topmost cv-qualifiers of the result type of applying Proj to std::iter_value_t<I>&.
| I | an indirectly readable type. |
| Projection | projection applied to an lvalue reference to value type of I. |
| using mimicpp::util::type_list_pop_back_t = typename type_list_pop_back<TypeList>::type |
| using mimicpp::util::type_list_populate_t = typename type_list_populate<Template, TypeList>::type |
| using mimicpp::util::type_list_reverse_t = typename type_list_reverse<TypeList>::type |
|
noexcept |
|
nodiscardconstexpr |
Concatenates the given arrays by copying all elements into a new array.
| T | The element type. |
| firstN | The size of the first array. |
| Others | Other array types which share the same element-type. |
| first | The first array. |
| others | The second array. |
|
nodiscardconstexpr |
Concatenates the given arrays by copying all elements into a new array.
| T | The element type. |
| firstN | The size of the first array. |
| secondN | The size of the second array. |
| first | The first array. |
| second | The second array. |
|
nodiscardconstexpr |
Finds the next closing token in the given string.
| Range | The string type. |
| str | The string to operate on. |
| openingToken | The symmetrical opening token. |
| closingToken | The symmetrical closing token. |
std::ranges::end(str) if no such token exist.This algorithm determines the first closing-token, for which no corresponding opening-token where found. E.g. for the input ()) an iterator to the second ) will be returned.
|
nodiscardconstexpr |
Finds the next unwrapped token in the given string.
| Range | The string type. |
| str | The string to operate on. |
| token | The token to be found. |
| opening | Character-range, which will be treated as wrapping start. |
| closing | Character-range, which will be treated as wrapping end. |
std::ranges::borrowed_subrange_t<Range>{std::ranges::end(str),std::ranges::end(str)} if no such token exist.This algorithm determines the first unwrapped token. Unwrapped means, that the token does not appear between elements of the opening- and closing-character-range. E.g. the input <t>t will return the second t when < and > are part of the opening- and closing-range.
|
nodiscardconstexpr |
Partitions the target range by the predicate results on the control range.
| Target | The target range. |
| Control | The control range. |
| Projection | The projection type. |
| Predicate | The predicate type. |
| targetRange | The range to be partitioned. |
| controlRange | The range, which controls the partition. |
| predicate | The predicate for the projected control-elements. |
| projection | The projection into the control-elements. |
false.This algorithm partitions the target range by evaluating the associated elements of the control range. This means, that if the predicate evaluates the control-element to false, the associated target-element moves into the second half; otherwise it stays at its position. The association is simply index based => target[i] is associated with control[i].
std::vector<bool>::iterator (and other Proxy-Iterators) not satisfying std::permutable, this requirement is dropped. Nevertheless, the range must semantically still be permutable.
|
nodiscardconstexpr |
Returns a view containing all elements, which start with the given prefix.
| Range | The range type, which holds elements comparable with Prefix. |
| Prefix | The prefix type. |
| range | The range. |
| prefix | The prefix. |
range.range is not sorted. | mimicpp::util::StaticString | ( | Char const | (&)[length] | ) | -> StaticString< Char, length - 1u > |
|
nodiscardconstexprnoexcept |
|
inline |
Invokes undefined behavior.
|
inlineconstexpr |
Finds the specified value within the container and returns an iterator pointing to it. If the value is not found, it returns an iterator to the end of the container.
|
inlineconstexpr |
Determines, whether the specified value is contained in the given range.
true, when the value is contained.std::ranges::contains.
|
inlineconstexpr |