|
| template<class E> |
| constexpr bool | wpi::util::operator== (const unexpected< E > &lhs, const unexpected< E > &rhs) |
| template<class E> |
| constexpr bool | wpi::util::operator!= (const unexpected< E > &lhs, const unexpected< E > &rhs) |
| template<class E> |
| constexpr bool | wpi::util::operator< (const unexpected< E > &lhs, const unexpected< E > &rhs) |
| template<class E> |
| constexpr bool | wpi::util::operator<= (const unexpected< E > &lhs, const unexpected< E > &rhs) |
| template<class E> |
| constexpr bool | wpi::util::operator> (const unexpected< E > &lhs, const unexpected< E > &rhs) |
| template<class E> |
| constexpr bool | wpi::util::operator>= (const unexpected< E > &lhs, const unexpected< E > &rhs) |
| template<class E> |
| unexpected< typename std::decay< E >::type > | wpi::util::make_unexpected (E &&e) |
| template<typename E> |
| WPI_EXPECTED_11_CONSTEXPR void | wpi::util::detail_expected::throw_exception (E &&e) |
| template<typename Fn, typename... Args, typename = enable_if_t<std::is_member_pointer<decay_t<Fn>>::value>, int = 0> |
| constexpr auto | wpi::util::detail_expected::invoke (Fn &&f, Args &&...args) noexcept(noexcept(std::mem_fn(f)(std::forward< Args >(args)...))) -> decltype(std::mem_fn(f)(std::forward< Args >(args)...)) |
| template<typename Fn, typename... Args, typename = enable_if_t<!std::is_member_pointer<decay_t<Fn>>::value>> |
| constexpr auto | wpi::util::detail_expected::invoke (Fn &&f, Args &&...args) noexcept(noexcept(std::forward< Fn >(f)(std::forward< Args >(args)...))) -> decltype(std::forward< Fn >(f)(std::forward< Args >(args)...)) |
| template<class T> |
| tag | wpi::util::detail_expected::swap_adl_tests::swap (T &, T &) |
| template<class T, std::size_t N> |
| tag | wpi::util::detail_expected::swap_adl_tests::swap (T(&a)[N], T(&b)[N]) |
| template<class, class> |
| std::false_type | wpi::util::detail_expected::swap_adl_tests::can_swap (...) noexcept(false) |
| template<class T, class U, class = decltype(swap(std::declval<T &>(), std::declval<U &>()))> |
| std::true_type | wpi::util::detail_expected::swap_adl_tests::can_swap (int) noexcept(noexcept(swap(std::declval< T & >(), std::declval< U & >()))) |
| template<class, class> |
| std::false_type | wpi::util::detail_expected::swap_adl_tests::uses_std (...) |
| template<class T, class U> |
| std::is_same< decltype(swap(std::declval< T & >(), std::declval< U & >())), tag > | wpi::util::detail_expected::swap_adl_tests::uses_std (int) |
| template<class Exp, class F, class Ret = decltype(detail_expected::invoke(std::declval<F>(), *std::declval<Exp>())), detail_expected::enable_if_t<!std::is_void< exp_t< Exp > >::value > * = nullptr> |
| auto | wpi::util::detail_expected::and_then_impl (Exp &&exp, F &&f) -> Ret |
| template<class Exp, class F, class Ret = decltype(detail_expected::invoke(std::declval<F>())), detail_expected::enable_if_t< std::is_void< exp_t< Exp > >::value > * = nullptr> |
| constexpr auto | wpi::util::detail_expected::and_then_impl (Exp &&exp, F &&f) -> Ret |
| template<class Exp, class F, detail_expected::enable_if_t<!std::is_void< exp_t< Exp > >::value > * = nullptr, class Ret = decltype(detail_expected::invoke(std::declval<F>(), *std::declval<Exp>())), detail_expected::enable_if_t<!std::is_void< Ret >::value > * = nullptr> |
| constexpr auto | wpi::util::detail_expected::expected_map_impl (Exp &&exp, F &&f) -> ret_t< Exp, detail_expected::decay_t< Ret > > |
| template<class Exp, class F, detail_expected::enable_if_t<!std::is_void< exp_t< Exp > >::value > * = nullptr, class Ret = decltype(detail_expected::invoke(std::declval<F>(), *std::declval<Exp>())), detail_expected::enable_if_t< std::is_void< Ret >::value > * = nullptr> |
| auto | wpi::util::detail_expected::expected_map_impl (Exp &&exp, F &&f) -> expected< void, err_t< Exp > > |
| template<class Exp, class F, detail_expected::enable_if_t< std::is_void< exp_t< Exp > >::value > * = nullptr, class Ret = decltype(detail_expected::invoke(std::declval<F>())), detail_expected::enable_if_t<!std::is_void< Ret >::value > * = nullptr> |
| constexpr auto | wpi::util::detail_expected::expected_map_impl (Exp &&exp, F &&f) -> ret_t< Exp, detail_expected::decay_t< Ret > > |
| template<class Exp, class F, detail_expected::enable_if_t< std::is_void< exp_t< Exp > >::value > * = nullptr, class Ret = decltype(detail_expected::invoke(std::declval<F>())), detail_expected::enable_if_t< std::is_void< Ret >::value > * = nullptr> |
| auto | wpi::util::detail_expected::expected_map_impl (Exp &&exp, F &&f) -> expected< void, err_t< Exp > > |
| template<class Exp, class F, detail_expected::enable_if_t<!std::is_void< exp_t< Exp > >::value > * = nullptr, class Ret = decltype(detail_expected::invoke(std::declval<F>(), std::declval<Exp>().error())), detail_expected::enable_if_t<!std::is_void< Ret >::value > * = nullptr> |
| constexpr auto | wpi::util::detail_expected::map_error_impl (Exp &&exp, F &&f) -> expected< exp_t< Exp >, detail_expected::decay_t< Ret > > |
| template<class Exp, class F, detail_expected::enable_if_t<!std::is_void< exp_t< Exp > >::value > * = nullptr, class Ret = decltype(detail_expected::invoke(std::declval<F>(), std::declval<Exp>().error())), detail_expected::enable_if_t< std::is_void< Ret >::value > * = nullptr> |
| auto | wpi::util::detail_expected::map_error_impl (Exp &&exp, F &&f) -> expected< exp_t< Exp >, monostate > |
| template<class Exp, class F, detail_expected::enable_if_t< std::is_void< exp_t< Exp > >::value > * = nullptr, class Ret = decltype(detail_expected::invoke(std::declval<F>(), std::declval<Exp>().error())), detail_expected::enable_if_t<!std::is_void< Ret >::value > * = nullptr> |
| constexpr auto | wpi::util::detail_expected::map_error_impl (Exp &&exp, F &&f) -> expected< exp_t< Exp >, detail_expected::decay_t< Ret > > |
| template<class Exp, class F, detail_expected::enable_if_t< std::is_void< exp_t< Exp > >::value > * = nullptr, class Ret = decltype(detail_expected::invoke(std::declval<F>(), std::declval<Exp>().error())), detail_expected::enable_if_t< std::is_void< Ret >::value > * = nullptr> |
| auto | wpi::util::detail_expected::map_error_impl (Exp &&exp, F &&f) -> expected< exp_t< Exp >, monostate > |
| template<class Exp, class F, class Ret = decltype(detail_expected::invoke(std::declval<F>(), std::declval<Exp>().error())), detail_expected::enable_if_t<!std::is_void< Ret >::value > * = nullptr> |
| auto | wpi::util::detail_expected::or_else_impl (Exp &&exp, F &&f) -> Ret |
| template<class Exp, class F, class Ret = decltype(detail_expected::invoke(std::declval<F>(), std::declval<Exp>().error())), detail_expected::enable_if_t< std::is_void< Ret >::value > * = nullptr> |
| detail_expected::decay_t< Exp > | wpi::util::detail_expected::or_else_impl (Exp &&exp, F &&f) |
| template<class T, class E, class U, class F> |
| constexpr bool | wpi::util::operator== (const expected< T, E > &lhs, const expected< U, F > &rhs) |
| template<class T, class E, class U, class F> |
| constexpr bool | wpi::util::operator!= (const expected< T, E > &lhs, const expected< U, F > &rhs) |
| template<class E, class F> |
| constexpr bool | wpi::util::operator== (const expected< void, E > &lhs, const expected< void, F > &rhs) |
| template<class E, class F> |
| constexpr bool | wpi::util::operator!= (const expected< void, E > &lhs, const expected< void, F > &rhs) |
| template<class T, class E, class U> |
| constexpr bool | wpi::util::operator== (const expected< T, E > &x, const U &v) |
| template<class T, class E, class U> |
| constexpr bool | wpi::util::operator== (const U &v, const expected< T, E > &x) |
| template<class T, class E, class U> |
| constexpr bool | wpi::util::operator!= (const expected< T, E > &x, const U &v) |
| template<class T, class E, class U> |
| constexpr bool | wpi::util::operator!= (const U &v, const expected< T, E > &x) |
| template<class T, class E> |
| constexpr bool | wpi::util::operator== (const expected< T, E > &x, const unexpected< E > &e) |
| template<class T, class E> |
| constexpr bool | wpi::util::operator== (const unexpected< E > &e, const expected< T, E > &x) |
| template<class T, class E> |
| constexpr bool | wpi::util::operator!= (const expected< T, E > &x, const unexpected< E > &e) |
| template<class T, class E> |
| constexpr bool | wpi::util::operator!= (const unexpected< E > &e, const expected< T, E > &x) |
| template<class T, class E, detail_expected::enable_if_t<(std::is_void< T >::value||std::is_move_constructible< T >::value) &&detail_expected::is_swappable< T >::value &&std::is_move_constructible< E >::value &&detail_expected::is_swappable< E >::value > * = nullptr> |
| void | wpi::util::swap (expected< T, E > &lhs, expected< T, E > &rhs) noexcept(noexcept(lhs.swap(rhs))) |