This file adds basic type traits utilities which are not yet implemented in all standard libraries.
More...
|
struct | fub::nodeduce< T > |
|
struct | fub::nonesuch |
|
struct | fub::is_detected< Op, Args > |
| This is std::true_type if Op<Args...> is a valid SFINAE expression. More...
|
|
struct | fub::detected_or< Default, Op, Args > |
| Returns the type of Op<Args...> or Default More...
|
|
struct | fub::is_detected_exact< Expected, Op, Args > |
| This is std::true_type if Op<Args...> is a valid SFINAE expression and the return type is exactly Expected . More...
|
|
struct | fub::conjunction<... > |
|
struct | fub::conjunction< B1 > |
|
struct | fub::conjunction< B1, Bn... > |
|
struct | fub::disjunction<... > |
|
struct | fub::disjunction< B1 > |
|
struct | fub::disjunction< B1, Bn... > |
|
struct | fub::integer_sequence< T, Ints > |
|
struct | fub::MakeIntegerSequence_< T, N, N, Ints... > |
|
struct | fub::MakeIntegerSequence_< T, N, L, Ints > |
|
struct | fub::invoke_result< F, Args > |
| This is std::true_type if F is a function type and can be invoked with arguments of types Args... . More...
|
|
struct | fub::is_invocable< F, Args > |
| This is std::true_type if a given object f of type T is callable by fub::invoke(f, args...) for Args... More...
|
|
struct | fub::remove_cvref< T > |
| This is equivalent to std::remove_cv_t<std::remove_reference_t<T>> . More...
|
|
struct | fub::value_type< Var > |
|
struct | fub::is_equality_comparable_impl< T, S > |
|
struct | fub::is_equality_comparable< T, S > |
| This is std::true_type if T and S are equality comparable. More...
|
|
struct | fub::is_nothrow_equality_comparable< T, S > |
| This is std::true_type if T and S are nothrow equality comparable. More...
|
|
struct | fub::is_regular< T > |
| This type trait checks if a specified type T fulfills the Regular concept. More...
|
|
struct | fub::overloaded< Ts > |
|
struct | fub::meta::tag_invoke_fn::tag_invoke_fn |
|
struct | fub::is_tag_invocable< _Tag, _Args > |
|
struct | fub::is_nothrow_tag_invocable< Tag, Args > |
|
|
using | fub::byte = unsigned char |
|
template<class... > |
using | fub::void_t = void |
|
template<typename T > |
using | fub::nodeduce_t = typename nodeduce< T >::type |
|
template<template< class... > class Op, class... Args> |
using | fub::detected_t = detail::detected_t< Op, Args... > |
| Returns the type of Op<Args...> or nonesuch More...
|
|
template<class Bool > |
using | fub::negation = std::integral_constant< bool, !bool(Bool::value)> |
|
template<std::size_t... Is> |
using | fub::index_sequence = integer_sequence< std::size_t, Is... > |
|
template<typename T , T N> |
using | fub::make_integer_sequence = typename MakeIntegerSequence_< T, N, T{0}>::type |
|
template<std::size_t N> |
using | fub::make_index_sequence = make_integer_sequence< std::size_t, N > |
|
using | fub::index = std::ptrdiff_t |
|
template<bool Bool> |
using | fub::bool_constant = std::integral_constant< bool, Bool > |
|
template<index I> |
using | fub::index_constant = std::integral_constant< index, I > |
|
template<int I> |
using | fub::int_constant = std::integral_constant< int, I > |
|
template<std::size_t I> |
using | fub::size_constant = std::integral_constant< std::size_t, I > |
|
template<typename T > |
using | fub::remove_cvref_t = typename remove_cvref< T >::type |
|
template<typename Var > |
using | fub::value_type_t = typename value_type< Var >::type |
|
template<typename X , typename Y > |
using | fub::decays_to = std::is_same< std::decay_t< X >, Y > |
|
template<typename Tag , typename... Args> |
using | fub::meta::tag_invoke_fn::tag_invoke_t = decltype(tag_invoke(std::declval< Tag >(), std::declval< Args >()...)) |
|
template<typename _Tag , typename... _Args> |
using | fub::tag_invoke_result = invoke_result< decltype(fub::meta::tag_invoke), _Tag, _Args... > |
|
template<typename _Tag , typename... _Args> |
using | fub::tag_invoke_result_t = invoke_result_t< decltype(fub::meta::tag_invoke), _Tag, _Args... > |
|
template<auto & T> |
using | fub::tag_t = std::decay_t< decltype(T)> |
|
|
template<typename F , typename... Args> |
using | fub::invoke_result_t = typename invoke_result< F, Args... >::type |
|
This file adds basic type traits utilities which are not yet implemented in all standard libraries.