Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
q23::detail Namespace Reference

Namespaces

namespace  swap_adl_tests

Classes

struct  conjunction
struct  conjunction< B >
struct  conjunction< B, Bs... >
struct  default_constructor_tag
struct  expected_copy_assign_base
struct  expected_copy_assign_base< T, E, false, true >
struct  expected_copy_base
struct  expected_copy_base< T, E, false, true >
struct  expected_default_ctor_base
struct  expected_default_ctor_base< T, E, false >
struct  expected_delete_assign_base
struct  expected_delete_assign_base< T, E, false, false >
struct  expected_delete_assign_base< T, E, false, true >
struct  expected_delete_assign_base< T, E, true, false >
struct  expected_delete_ctor_base
struct  expected_delete_ctor_base< T, E, false, false >
struct  expected_delete_ctor_base< T, E, false, true >
struct  expected_delete_ctor_base< T, E, true, false >
struct  expected_move_assign_base
struct  expected_move_assign_base< T, E, false >
struct  expected_move_base
struct  expected_move_base< T, E, false >
struct  expected_operations_base
struct  expected_operations_base< void, E >
struct  expected_storage_base
struct  expected_storage_base< T, E, false, true >
struct  expected_storage_base< T, E, true, false >
struct  expected_storage_base< T, E, true, true >
struct  expected_storage_base< void, E, false, false >
struct  expected_storage_base< void, E, false, true >
struct  invoke_result_impl
struct  invoke_result_impl< F, decltype(detail::invoke(std::declval< F >(), std::declval< Us >()...), void()), Us... >
struct  is_expected_impl
struct  is_expected_impl< expected< T, E > >
struct  is_nothrow_swappable
struct  is_swappable
struct  is_swappable< T[N], T[N]>
struct  no_init_t
struct  TC

Typedefs

template<class T>
using remove_const_t = typename std::remove_const<T>::type
template<class T>
using remove_reference_t = typename std::remove_reference<T>::type
template<class T>
using decay_t = typename std::decay<T>::type
template<bool E, class T = void>
using enable_if_t = typename std::enable_if<E, T>::type
template<bool B, class T, class F>
using conditional_t = typename std::conditional<B, T, F>::type
template<class F, class... Us>
using invoke_result = invoke_result_impl<F, void, Us...>
template<class F, class... Us>
using invoke_result_t = typename invoke_result<F, Us...>::type
template<class T>
using is_expected = is_expected_impl<decay_t<T>>
template<class T, class E, class U>
using expected_enable_forward_value
template<class T, class E, class U, class G, class UR, class GR>
using expected_enable_from_other
template<class T, class U>
using is_void_or = conditional_t<std::is_void<T>::value, std::true_type, U>
template<class T>
using is_copy_constructible_or_void
template<class T>
using is_move_constructible_or_void
template<class T>
using is_copy_assignable_or_void = is_void_or<T, std::is_copy_assignable<T>>
template<class T>
using is_move_assignable_or_void = is_void_or<T, std::is_move_assignable<T>>
template<class Exp>
using exp_t = typename detail::decay_t<Exp>::value_type
template<class Exp>
using err_t = typename detail::decay_t<Exp>::error_type
template<class Exp, class Ret>
using ret_t = expected<Ret, err_t<Exp>>

Functions

template<typename E>
TL_EXPECTED_11_CONSTEXPR void 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 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 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 Exp, class F, class Ret = decltype(detail::invoke(std::declval<F>(), *std::declval<Exp>())), detail::enable_if_t<!std::is_void< exp_t< Exp > >::value > * = nullptr>
auto and_then_impl (Exp &&exp, F &&f) -> Ret
template<class Exp, class F, class Ret = decltype(detail::invoke(std::declval<F>())), detail::enable_if_t< std::is_void< exp_t< Exp > >::value > * = nullptr>
constexpr auto and_then_impl (Exp &&exp, F &&f) -> Ret
template<class Exp, class F, detail::enable_if_t<!std::is_void< exp_t< Exp > >::value > * = nullptr, class Ret = decltype(detail::invoke(std::declval<F>(), *std::declval<Exp>())), detail::enable_if_t<!std::is_void< Ret >::value > * = nullptr>
constexpr auto expected_map_impl (Exp &&exp, F &&f) -> ret_t< Exp, detail::decay_t< Ret > >
template<class Exp, class F, detail::enable_if_t<!std::is_void< exp_t< Exp > >::value > * = nullptr, class Ret = decltype(detail::invoke(std::declval<F>(), *std::declval<Exp>())), detail::enable_if_t< std::is_void< Ret >::value > * = nullptr>
auto expected_map_impl (Exp &&exp, F &&f) -> expected< void, err_t< Exp > >
template<class Exp, class F, detail::enable_if_t< std::is_void< exp_t< Exp > >::value > * = nullptr, class Ret = decltype(detail::invoke(std::declval<F>())), detail::enable_if_t<!std::is_void< Ret >::value > * = nullptr>
constexpr auto expected_map_impl (Exp &&exp, F &&f) -> ret_t< Exp, detail::decay_t< Ret > >
template<class Exp, class F, detail::enable_if_t< std::is_void< exp_t< Exp > >::value > * = nullptr, class Ret = decltype(detail::invoke(std::declval<F>())), detail::enable_if_t< std::is_void< Ret >::value > * = nullptr>
auto expected_map_impl (Exp &&exp, F &&f) -> expected< void, err_t< Exp > >
template<class Exp, class F, detail::enable_if_t<!std::is_void< exp_t< Exp > >::value > * = nullptr, class Ret = decltype(detail::invoke(std::declval<F>(), std::declval<Exp>().error())), detail::enable_if_t<!std::is_void< Ret >::value > * = nullptr>
constexpr auto map_error_impl (Exp &&exp, F &&f) -> expected< exp_t< Exp >, detail::decay_t< Ret > >
template<class Exp, class F, detail::enable_if_t<!std::is_void< exp_t< Exp > >::value > * = nullptr, class Ret = decltype(detail::invoke(std::declval<F>(), std::declval<Exp>().error())), detail::enable_if_t< std::is_void< Ret >::value > * = nullptr>
auto map_error_impl (Exp &&exp, F &&f) -> expected< exp_t< Exp >, monostate >
template<class Exp, class F, detail::enable_if_t< std::is_void< exp_t< Exp > >::value > * = nullptr, class Ret = decltype(detail::invoke(std::declval<F>(), std::declval<Exp>().error())), detail::enable_if_t<!std::is_void< Ret >::value > * = nullptr>
constexpr auto map_error_impl (Exp &&exp, F &&f) -> expected< exp_t< Exp >, detail::decay_t< Ret > >
template<class Exp, class F, detail::enable_if_t< std::is_void< exp_t< Exp > >::value > * = nullptr, class Ret = decltype(detail::invoke(std::declval<F>(), std::declval<Exp>().error())), detail::enable_if_t< std::is_void< Ret >::value > * = nullptr>
auto map_error_impl (Exp &&exp, F &&f) -> expected< exp_t< Exp >, monostate >
template<class Exp, class F, class Ret = decltype(detail::invoke(std::declval<F>(), std::declval<Exp>().error())), detail::enable_if_t<!std::is_void< Ret >::value > * = nullptr>
auto or_else_impl (Exp &&exp, F &&f) -> Ret
template<class Exp, class F, class Ret = decltype(detail::invoke(std::declval<F>(), std::declval<Exp>().error())), detail::enable_if_t< std::is_void< Ret >::value > * = nullptr>
detail::decay_t< Exp > or_else_impl (Exp &&exp, F &&f)

Variables

static constexpr no_init_t no_init {}

Typedef Documentation

◆ conditional_t

template<bool B, class T, class F>
using q23::detail::conditional_t = typename std::conditional<B, T, F>::type

Definition at line 271 of file qexpected_p.h.

◆ decay_t

template<class T>
using q23::detail::decay_t = typename std::decay<T>::type

Definition at line 267 of file qexpected_p.h.

◆ enable_if_t

template<bool E, class T = void>
using q23::detail::enable_if_t = typename std::enable_if<E, T>::type

Definition at line 269 of file qexpected_p.h.

◆ err_t

template<class Exp>
using q23::detail::err_t = typename detail::decay_t<Exp>::error_type

Definition at line 2109 of file qexpected_p.h.

◆ exp_t

template<class Exp>
using q23::detail::exp_t = typename detail::decay_t<Exp>::value_type

Definition at line 2108 of file qexpected_p.h.

◆ expected_enable_forward_value

template<class T, class E, class U>
using q23::detail::expected_enable_forward_value
Initial value:
std::is_constructible<T, U &&>::value &&
!std::is_same<detail::decay_t<U>, in_place_t>::value &&
!std::is_same<expected<T, E>, detail::decay_t<U>>::value &&
!std::is_same<unexpected<E>, detail::decay_t<U>>::value>
typename std::enable_if< E, T >::type enable_if_t
typename std::decay< T >::type decay_t
EGLOutputLayerEXT EGLint EGLAttrib value
[3]

Definition at line 434 of file qexpected_p.h.

◆ expected_enable_from_other

template<class T, class E, class U, class G, class UR, class GR>
using q23::detail::expected_enable_from_other
Initial value:
std::is_constructible<T, UR>::value &&
std::is_constructible<E, GR>::value &&
!std::is_constructible<T, expected<U, G> &>::value &&
!std::is_constructible<T, expected<U, G> &&>::value &&
!std::is_constructible<T, const expected<U, G> &>::value &&
!std::is_constructible<T, const expected<U, G> &&>::value &&
!std::is_convertible<expected<U, G> &, T>::value &&
!std::is_convertible<expected<U, G> &&, T>::value &&
!std::is_convertible<const expected<U, G> &, T>::value &&
!std::is_convertible<const expected<U, G> &&, T>::value>

Definition at line 441 of file qexpected_p.h.

◆ invoke_result

template<class F, class... Us>
using q23::detail::invoke_result = invoke_result_impl<F, void, Us...>

Definition at line 350 of file qexpected_p.h.

◆ invoke_result_t

template<class F, class... Us>
using q23::detail::invoke_result_t = typename invoke_result<F, Us...>::type

Definition at line 353 of file qexpected_p.h.

◆ is_copy_assignable_or_void

template<class T>
using q23::detail::is_copy_assignable_or_void = is_void_or<T, std::is_copy_assignable<T>>

Definition at line 465 of file qexpected_p.h.

◆ is_copy_constructible_or_void

Initial value:
conditional_t< std::is_void< T >::value, std::true_type, U > is_void_or

Definition at line 457 of file qexpected_p.h.

◆ is_expected

template<class T>
using q23::detail::is_expected = is_expected_impl<decay_t<T>>

Definition at line 431 of file qexpected_p.h.

◆ is_move_assignable_or_void

template<class T>
using q23::detail::is_move_assignable_or_void = is_void_or<T, std::is_move_assignable<T>>

Definition at line 468 of file qexpected_p.h.

◆ is_move_constructible_or_void

Initial value:

Definition at line 461 of file qexpected_p.h.

◆ is_void_or

template<class T, class U>
using q23::detail::is_void_or = conditional_t<std::is_void<T>::value, std::true_type, U>

Definition at line 454 of file qexpected_p.h.

◆ remove_const_t

template<class T>
using q23::detail::remove_const_t = typename std::remove_const<T>::type

Definition at line 264 of file qexpected_p.h.

◆ remove_reference_t

template<class T>
using q23::detail::remove_reference_t = typename std::remove_reference<T>::type

Definition at line 266 of file qexpected_p.h.

◆ ret_t

template<class Exp, class Ret>
using q23::detail::ret_t = expected<Ret, err_t<Exp>>

Definition at line 2110 of file qexpected_p.h.

Function Documentation

◆ and_then_impl() [1/2]

template<class Exp, class F, class Ret = decltype(detail::invoke(std::declval<F>(), *std::declval<Exp>())), detail::enable_if_t<!std::is_void< exp_t< Exp > >::value > * = nullptr>
auto q23::detail::and_then_impl ( Exp && exp,
F && f ) -> Ret

Definition at line 2140 of file qexpected_p.h.

◆ and_then_impl() [2/2]

template<class Exp, class F, class Ret = decltype(detail::invoke(std::declval<F>())), detail::enable_if_t< std::is_void< exp_t< Exp > >::value > * = nullptr>
auto q23::detail::and_then_impl ( Exp && exp,
F && f ) -> Ret
constexpr

Definition at line 2151 of file qexpected_p.h.

◆ expected_map_impl() [1/4]

template<class Exp, class F, detail::enable_if_t<!std::is_void< exp_t< Exp > >::value > * = nullptr, class Ret = decltype(detail::invoke(std::declval<F>(), *std::declval<Exp>())), detail::enable_if_t< std::is_void< Ret >::value > * = nullptr>
auto q23::detail::expected_map_impl ( Exp && exp,
F && f ) -> expected<void, err_t<Exp>>

Definition at line 2232 of file qexpected_p.h.

◆ expected_map_impl() [2/4]

template<class Exp, class F, detail::enable_if_t< std::is_void< exp_t< Exp > >::value > * = nullptr, class Ret = decltype(detail::invoke(std::declval<F>())), detail::enable_if_t< std::is_void< Ret >::value > * = nullptr>
auto q23::detail::expected_map_impl ( Exp && exp,
F && f ) -> expected<void, err_t<Exp>>

Definition at line 2259 of file qexpected_p.h.

◆ expected_map_impl() [3/4]

template<class Exp, class F, detail::enable_if_t<!std::is_void< exp_t< Exp > >::value > * = nullptr, class Ret = decltype(detail::invoke(std::declval<F>(), *std::declval<Exp>())), detail::enable_if_t<!std::is_void< Ret >::value > * = nullptr>
auto q23::detail::expected_map_impl ( Exp && exp,
F && f ) -> ret_t<Exp, detail::decay_t<Ret>>
constexpr

Definition at line 2217 of file qexpected_p.h.

◆ expected_map_impl() [4/4]

template<class Exp, class F, detail::enable_if_t< std::is_void< exp_t< Exp > >::value > * = nullptr, class Ret = decltype(detail::invoke(std::declval<F>())), detail::enable_if_t<!std::is_void< Ret >::value > * = nullptr>
auto q23::detail::expected_map_impl ( Exp && exp,
F && f ) -> ret_t<Exp, detail::decay_t<Ret>>
constexpr

Definition at line 2246 of file qexpected_p.h.

◆ invoke() [1/2]

template<typename Fn, typename... Args, typename = enable_if_t<!std::is_member_pointer<decay_t<Fn>>::value>>
auto q23::detail::invoke ( Fn && f,
Args &&... args ) -> decltype(std::forward<Fn>(f)(std::forward<Args>(args)...))
constexprnoexcept

Definition at line 331 of file qexpected_p.h.

◆ invoke() [2/2]

template<typename Fn, typename... Args, typename = enable_if_t<std::is_member_pointer<decay_t<Fn>>::value>, int = 0>
auto q23::detail::invoke ( Fn && f,
Args &&... args ) -> decltype(std::mem_fn(f)(std::forward<Args>(args)...))
constexprnoexcept

Definition at line 323 of file qexpected_p.h.

◆ map_error_impl() [1/4]

template<class Exp, class F, detail::enable_if_t<!std::is_void< exp_t< Exp > >::value > * = nullptr, class Ret = decltype(detail::invoke(std::declval<F>(), std::declval<Exp>().error())), detail::enable_if_t<!std::is_void< Ret >::value > * = nullptr>
auto q23::detail::map_error_impl ( Exp && exp,
F && f ) -> expected<exp_t<Exp>, detail::decay_t<Ret>>
constexpr

Definition at line 2329 of file qexpected_p.h.

◆ map_error_impl() [2/4]

template<class Exp, class F, detail::enable_if_t< std::is_void< exp_t< Exp > >::value > * = nullptr, class Ret = decltype(detail::invoke(std::declval<F>(), std::declval<Exp>().error())), detail::enable_if_t<!std::is_void< Ret >::value > * = nullptr>
auto q23::detail::map_error_impl ( Exp && exp,
F && f ) -> expected<exp_t<Exp>, detail::decay_t<Ret>>
constexpr

Definition at line 2359 of file qexpected_p.h.

◆ map_error_impl() [3/4]

template<class Exp, class F, detail::enable_if_t<!std::is_void< exp_t< Exp > >::value > * = nullptr, class Ret = decltype(detail::invoke(std::declval<F>(), std::declval<Exp>().error())), detail::enable_if_t< std::is_void< Ret >::value > * = nullptr>
auto q23::detail::map_error_impl ( Exp && exp,
F && f ) -> expected<exp_t<Exp>, monostate>

Definition at line 2344 of file qexpected_p.h.

◆ map_error_impl() [4/4]

template<class Exp, class F, detail::enable_if_t< std::is_void< exp_t< Exp > >::value > * = nullptr, class Ret = decltype(detail::invoke(std::declval<F>(), std::declval<Exp>().error())), detail::enable_if_t< std::is_void< Ret >::value > * = nullptr>
auto q23::detail::map_error_impl ( Exp && exp,
F && f ) -> expected<exp_t<Exp>, monostate>

Definition at line 2374 of file qexpected_p.h.

◆ or_else_impl() [1/2]

template<class Exp, class F, class Ret = decltype(detail::invoke(std::declval<F>(), std::declval<Exp>().error())), detail::enable_if_t< std::is_void< Ret >::value > * = nullptr>
detail::decay_t< Exp > q23::detail::or_else_impl ( Exp && exp,
F && f )

Definition at line 2423 of file qexpected_p.h.

◆ or_else_impl() [2/2]

template<class Exp, class F, class Ret = decltype(detail::invoke(std::declval<F>(), std::declval<Exp>().error())), detail::enable_if_t<!std::is_void< Ret >::value > * = nullptr>
auto q23::detail::or_else_impl ( Exp && exp,
F && f ) -> Ret

Definition at line 2412 of file qexpected_p.h.

◆ throw_exception()

template<typename E>
TL_EXPECTED_11_CONSTEXPR void q23::detail::throw_exception ( E && e)

Definition at line 248 of file qexpected_p.h.

Variable Documentation

◆ no_init

no_init_t q23::detail::no_init {}
staticconstexpr