|
|
using | atom = lib::variant<lib::symbol, lib::number> |
| | An atom is either a symbol or a number.
|
| |
| template<typename T > |
| using | effect_result_t = lib::invoke_result_t<decltype(lib::fallback), const T &> |
| | Evaluates to the result type of the given effect.
|
| |
| template<typename F , typename... Args> |
| using | invoke_result_t = decltype(lib::invoke(std::declval<F>(), std::declval<Args>()...)) |
| | An implementation of std::invoke_result_t.
|
| |
| template<typename I > |
| using | iter_value_t = typename std::iterator_traits<I>::value_type |
| | The type of value pointed to by an iterator.
|
| |
| template<typename I > |
| using | iter_reference_t = typename std::iterator_traits<I>::reference |
| | The return type of operator* for an iterator.
|
| |
| template<typename I > |
| using | iter_difference_t = typename std::iterator_traits<I>::difference_type |
| | The return type of operator- for an iterator.
|
| |
| template<typename I > |
| using | iter_category_t = typename std::iterator_traits<I>::iterator_category |
| | A tag type indicating the level of supported iterator options a type provides.
|
| |
| template<typename I > |
| using | iota_diff_t = typename iota_diff<I>::type |
| | Computes a type large enough to contain the difference between two instances of an iterator.
|
| |
| template<typename T > |
| using | iterator_t = decltype(lib::begin(std::declval<T &>())) |
| | Obtains the iterator type of a range type.
|
| |
|
template<typename T > |
| using | view = lib::void_t<lib::range<T>, lib::movable<T>, lib::enable_if_t<lib::enable_view<T>{}>> |
| |
| template<typename R > |
| using | range_size_t = decltype(lib::size(std::declval<R &>())) |
| | The type of value returned by lib::size.
|
| |
| template<typename R > |
| using | range_difference_t = lib::iter_difference_t<lib::iterator_t<R>> |
| | The type of value returned by operator- for a range type's iterators.
|
| |
| template<typename R > |
| using | range_value_t = lib::iter_value_t<lib::iterator_t<R>> |
| | The type of element contained in a range.
|
| |
| template<typename R > |
| using | range_reference_t = lib::iter_reference_t<lib::iterator_t<R>> |
| | The type returned by operator* for a range type's iterators.
|
| |
| template<typename... > |
| using | void_t = void |
| | An implementation of std::void_t.
|
| |
| template<bool Cond, typename T , typename F > |
| using | conditional_t = typename std::conditional<Cond, T, F>::type |
| | An implementation of std::conditional_t.
|
| |
| template<bool Cond, typename T = void> |
| using | enable_if_t = typename std::enable_if<Cond, T>::type |
| | An implementation of std::enable_if_t.
|
| |
| template<typename T > |
| using | decay_t = typename std::decay<T>::type |
| | An implementation of std::decay_t.
|
| |
| template<typename T > |
| using | remove_cv_t = typename std::remove_cv<T>::type |
| | An implementation of std::remove_cv_t.
|
| |
| template<typename T > |
| using | remove_extent_t = typename std::remove_extent<T>::type |
| | An implementation of std::remove_extent_t.
|
| |
| template<typename T > |
| using | make_unsigned_t = typename std::make_unsigned<T>::type |
| | An implementation of std::make_unsigned_t.
|
| |
| template<typename... Args> |
| using | common_type_t = typename std::common_type<Args...>::type |
| | An implementation of std::common_type_t.
|
| |
| template<typename T > |
| using | remove_cvref_t = typename std::remove_cv<typename std::remove_reference<T>::type>::type |
| | An implementation of std::remove_cvref_t.
|
| |
| template<typename T , typename... > |
| using | type_identity_t = T |
| | An implementation of std::type_identity_t.
|
| |
| template<std::size_t I, typename T > |
| using | tuple_element_t = typename std::tuple_element<I, T>::type |
| | Provides compile-time access the the types of the elements of a tuple.
|
| |
| template<typename T > |
| using | remove_reference_t = typename std::remove_reference<T>::type |
| | An implementation of std::remove_reference_t.
|
| |
| template<typename T > |
| using | remove_const_t = typename std::remove_const<T>::type |
| | An implementation of std::remove_const_t.
|
| |
| template<typename T > |
| using | make_signed_t = typename std::make_signed<T>::type |
| | An implementation of std::make_signed_t.
|
| |
| template<typename T > |
| using | add_lvalue_reference_t = typename std::add_lvalue_reference<T>::type |
| | An implementation of std::add_lvalue_reference_t.
|
| |
| template<typename T > |
| using | add_rvalue_reference_t = typename std::add_rvalue_reference<T>::type |
| | An implementation of std::add_rvalue_reference_t.
|
| |
| template<typename T > |
| using | add_const_t = typename std::add_const<T>::type |
| | An implementation of std::add_const_t.
|
| |
| template<typename T > |
| using | add_pointer_t = typename std::add_pointer<T>::type |
| | An implementation of std::add_pointer_t.
|
| |
| template<typename T > |
| using | remove_pointer_t = typename std::remove_pointer<T>::type |
| | An implementation of std::remove_pointer_t.
|
| |
| template<std::size_t... Ints> |
| using | index_sequence = integer_sequence<std::size_t, Ints...> |
| | An implementation of std::index_sequence.
|
| |
| template<std::size_t N> |
| using | make_index_sequence = make_integer_sequence<std::size_t, N> |
| | An implementation of std::make_index_sequence.
|
| |
|
|
template<typename T > |
| T * | any_cast (any *operand) |
| |
|
template<typename T > |
| const T * | any_cast (const any *operand) |
| |
| template<typename T , typename U > |
| T | bit_cast (const U &src) noexcept |
| | Performs a bit-level conversion from one type to another.
|
| |
|
template<typename R , typename F > |
| lib::dag< lib::range_value_t< R > > | make_dag (R &&range, F func) |
| |
| template<typename F , typename T > |
| void | async (lib::dag< T > &graph, F func) |
| | Executes a function on each label in a given graph. Calls for unrelated node labels are executed in parallel.
|
| |
| template<typename F , typename T > |
| void | async (const lib::dag< T > &graph, F func) |
| | Executes a function on each label in a given graph. Calls for unrelated node labels are executed in parallel.
|
| |
| template<typename F , typename T > |
| lib::dag< lib::invoke_result_t< F, lib::iterator_t< lib::dag< T > > > > | async (lib::dag< T > &graph, F func) |
| | Executes a function on each label in a given graph and stores the results in a graph with the same structure. Calls for unrelated nodes are executed in parallel.
|
| |
| template<typename F , typename T > |
| lib::dag< lib::invoke_result_t< F, lib::iterator_t< const lib::dag< T > > > > | async (const lib::dag< T > &graph, F func) |
| | Executes a function on each label in a given graph and stores the results in a graph with the same structure. Calls for unrelated nodes are executed in parallel.
|
| |
|
template<typename T , typename S , typename F > |
| bool | linearize (const lib::dag< T > &dag, S &seed, F func) |
| |
|
template<typename T , typename F , typename G > |
| lib::optional< lib::invoke_result_t< F > > | linearize (const lib::dag< T > &dag, F init, G func) |
| |
| lib::effect_result_t< T > | fallback (T args) |
| | Invokes the fallback behaviour for an effect.
|
| |
| template<typename... Args> |
| lib::overload< Args... > | make_overload (Args... args) |
| | Constructs an overloaded functor from a set of pre-existing functors.
|
| |
|
template<typename V , typename F > |
| lib::filter_view< V, F > | filter (V base, F func) |
| |
|
template<typename F > |
| lib::generate_iterator< F > | make_generate_iterator (F func) |
| |
| template<typename I > |
| lib::subrange< I > | make_subrange (I first, I last) |
| | Constructs a subrange from a pair of iterators.
|
| |
| template<typename T , typename... Args> |
| std::unique_ptr< T > | make_unique (Args... args) |
| | An implementation of std::make_unique.
|
| |
| template<typename T > |
| constexpr T | midpoint (T min, T max) noexcept |
| | An implementation of std::midpoint.
|
| |
| template<typename T > |
| T | midpoint (T min, T max) noexcept |
| | An implementation of std::midpoint.
|
| |
| template<typename T > |
| lib::make_unsigned_t< T > | to_unsigned (T value) |
| | Converts an integral value into its equivalent unsigned version.
|
| |
| template<typename T > |
| constexpr lib::optional< lib::decay_t< T > > | make_optional (T &&value) |
| | An implementation of std::make_optional.
|
| |
| template<typename T , typename... Args> |
| constexpr lib::optional< T > | make_optional (Args &&...args) |
| | An implementation of std::make_optional.
|
| |
| template<typename T , typename U , typename... Args> |
| constexpr lib::optional< T > | make_optional (const std::initializer_list< U > &ilist, Args &&...args) |
| | An implementation of std::make_optional.
|
| |
| template<typename T , typename U > |
| bool | operator== (const lib::optional< T > &lhs, const lib::optional< U > &rhs) |
| | An implementation of std::optional::operator==.
|
| |
| template<typename T > |
| bool | operator== (const lib::nullopt_t &, const lib::optional< T > &value) |
| | An implementation of std::optional::operator==.
|
| |
| template<typename T > |
| bool | operator== (const lib::optional< T > &value, const lib::nullopt_t &) |
| | An implementation of std::optional::operator==.
|
| |
| template<typename T , typename U > |
| bool | operator== (const U &lhs, const lib::optional< T > &rhs) |
| | An implementation of std::optional::operator==.
|
| |
| template<typename T , typename U > |
| bool | operator== (const lib::optional< T > &lhs, const U &rhs) |
| | An implementation of std::optional::operator==.
|
| |
| template<typename T , typename U > |
| bool | operator!= (const lib::optional< T > &lhs, const lib::optional< U > &rhs) |
| | An implementation of std::optional::operator==.
|
| |
| template<typename T > |
| bool | operator!= (const lib::nullopt_t &, const lib::optional< T > &value) |
| | An implementation of std::optional::operator==.
|
| |
| template<typename T > |
| bool | operator!= (const lib::optional< T > &value, const lib::nullopt_t &) |
| | An implementation of std::optional::operator==.
|
| |
| template<typename T , typename U > |
| bool | operator!= (const U &lhs, const lib::optional< T > &rhs) |
| | An implementation of std::optional::operator==.
|
| |
| template<typename T , typename U > |
| bool | operator!= (const lib::optional< T > &lhs, const U &rhs) |
| | An implementation of std::optional::operator==.
|
| |
| template<typename T , typename U > |
| bool | operator< (const lib::optional< T > &lhs, const lib::optional< U > &rhs) |
| | An implementation of std::optional::operator<.
|
| |
| template<typename T > |
| bool | operator< (const lib::nullopt_t &, const lib::optional< T > &value) |
| | An implementation of std::optional::operator<.
|
| |
| template<typename T > |
| bool | operator< (const lib::optional< T > &, const lib::nullopt_t &) |
| | An implementation of std::optional::operator<.
|
| |
| template<typename T , typename U > |
| bool | operator< (const U &lhs, const lib::optional< T > &rhs) |
| | An implementation of std::optional::operator<.
|
| |
| template<typename T , typename U > |
| bool | operator< (const lib::optional< T > &lhs, const U &rhs) |
| | An implementation of std::optional::operator<.
|
| |
| template<typename T , typename U > |
| bool | operator> (const lib::optional< T > &lhs, const lib::optional< U > &rhs) |
| | An implementation of std::optional::operator>.
|
| |
| template<typename T > |
| bool | operator> (const lib::nullopt_t &, const lib::optional< T > &) |
| | An implementation of std::optional::operator>.
|
| |
| template<typename T > |
| bool | operator> (const lib::optional< T > &value, const lib::nullopt_t &) |
| | An implementation of std::optional::operator>.
|
| |
| template<typename T , typename U > |
| bool | operator> (const U &lhs, const lib::optional< T > &rhs) |
| | An implementation of std::optional::operator>.
|
| |
| template<typename T , typename U > |
| bool | operator> (const lib::optional< T > &lhs, const U &rhs) |
| | An implementation of std::optional::operator>.
|
| |
| template<typename T , typename U > |
| bool | operator<= (const lib::optional< T > &lhs, const lib::optional< U > &rhs) |
| | An implementation of std::optional::operator<=.
|
| |
| template<typename T > |
| bool | operator<= (const lib::nullopt_t &, const lib::optional< T > &) |
| | An implementation of std::optional::operator<=.
|
| |
| template<typename T > |
| bool | operator<= (const lib::optional< T > &value, const lib::nullopt_t &) |
| | An implementation of std::optional::operator<=.
|
| |
| template<typename T , typename U > |
| bool | operator<= (const U &lhs, const lib::optional< T > &rhs) |
| | An implementation of std::optional::operator<=.
|
| |
| template<typename T , typename U > |
| bool | operator<= (const lib::optional< T > &lhs, const U &rhs) |
| | An implementation of std::optional::operator<=.
|
| |
| template<typename T , typename U > |
| bool | operator>= (const lib::optional< T > &lhs, const lib::optional< U > &rhs) |
| | An implementation of std::optional::operator>=.
|
| |
| template<typename T > |
| bool | operator>= (const lib::nullopt_t &, const lib::optional< T > &value) |
| | An implementation of std::optional::operator>=.
|
| |
| template<typename T > |
| bool | operator>= (const lib::optional< T > &, const lib::nullopt_t &) |
| | An implementation of std::optional::operator>=.
|
| |
| template<typename T , typename U > |
| bool | operator>= (const U &lhs, const lib::optional< T > &rhs) |
| | An implementation of std::optional::operator>=.
|
| |
| template<typename T , typename U > |
| bool | operator>= (const lib::optional< T > &lhs, const U &rhs) |
| | An implementation of std::optional::operator>=.
|
| |
| template<typename T > |
| std::string | to_string (const T &value) |
| | Converts a value to a std::string using operator<<.
|
| |
| template<typename T > |
| lib::optional< T > | of_string (const std::string &value) |
| | Converts a std::string to a value using operator>>.
|
| |
| lib::optional< std::string > | getenv (const std::string &name) |
| | Gets the value of an environment variable.
|
| |
| template<typename T > |
| lib::optional< T > | getenv (const std::string &name) |
| | Gets the value of an environment variable.
|
| |
| std::string | nameof (const std::type_info &info) |
| | Gets the demangled name associated with a std::type_info.
|
| |
| template<typename T > |
| std::string | nameof () |
| | Gets the demangled name associated with a type.
|
| |
| template<typename T , typename U = T> |
| T | exchange (T &value, U &&next) |
| | An implementation of std::exchange.
|
| |
|
template<typename F , typename... Args> |
| lib::result_holder< lib::invoke_result_t< F, Args... > > | make_result_holder (F func, Args &&...args) |
| |
|
template<typename F , typename... Args> |
| lib::result_holder< void > | make_result_holder (F func, Args &&...args) |
| |
| template<typename T > |
| T | any_cast (const any &operand) |
| | An implementation of std::any_cast.
|
| |
| template<typename T > |
| T | any_cast (any &operand) |
| | An implementation of std::any_cast.
|
| |
| template<typename T > |
| T | any_cast (any &&operand) |
| | An implementation of std::any_cast.
|
| |
| template<typename T > |
| const T * | any_cast (const any *operand) noexcept |
| | An implementation of std::any_cast.
|
| |
| template<typename T > |
| T * | any_cast (any *operand) noexcept |
| | An implementation of std::any_cast.
|
| |
| template<typename T , typename... Args> |
| any | make_any (Args &&...args) |
| | An implementation of std::make_any.
|
| |
| template<typename F > |
| lib::finally_t< F > | finally (F func) |
| |