libbmb
Modern implementation of STL
Loading...
Searching...
No Matches
type_traits.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  bmb::type_identity< T >
 type_identity More...
 
struct  bmb::integral_constant< val >
 integral_constant More...
 
struct  bmb::conjunction< Types >
 Logical AND metafunction. More...
 
struct  bmb::disjunction< Types >
 Logical OR metafunction. More...
 
struct  bmb::is_same< T, U >
 is_same More...
 
struct  bmb::is_same< T, T >
 
struct  bmb::is_lvalue_ref< T >
 is_lvalue_ref More...
 
struct  bmb::is_lvalue_ref< T & >
 
struct  bmb::is_rvalue_ref< T >
 is_lvalue_ref More...
 
struct  bmb::is_rvalue_ref< T && >
 
struct  bmb::is_const< T >
 is_const More...
 
struct  bmb::is_const< const T >
 
struct  bmb::is_class< T >
 is_class More...
 
struct  bmb::is_pointer< T >
 is_pointer More...
 
struct  bmb::is_pointer< T * >
 
struct  bmb::remove_const< T >
 remove_const More...
 
struct  bmb::remove_const< const T >
 
struct  bmb::remove_ref< T >
 remove_ref More...
 
struct  bmb::remove_ref< T & >
 
struct  bmb::remove_ref< T && >
 
struct  bmb::conditional< Cond, IfTrue, IfFalse >
 conditional More...
 
struct  bmb::conditional< false, IfTrue, IfFalse >
 
struct  bmb::enable_if< Cond, T >
 enable_if More...
 
struct  bmb::enable_if< true, T >
 
struct  bmb::is_base_of< Base, Derived >
 is_base_of More...
 
struct  bmb::detail::invoke_result_impl< AlwaysVoid, F, Args >
 
struct  bmb::detail::invoke_result_impl< decltype(void(invoke< F, Args... >())), F, Args... >
 
struct  bmb::is_invocable< F, Args >
 is_invocable More...
 
struct  bmb::invoke_result< F, Args >
 invoke_result More...
 

Namespaces

namespace  bmb
 
namespace  bmb::detail
 

Typedefs

template<typename T >
using bmb::type_identity_t = type_identity< T >::type
 type_identity_t
 
template<bool val>
using bmb::bool_constant = integral_constant< val >
 bool_constant
 
using bmb::true_type = bool_constant< true >
 true_type
 
using bmb::false_type = bool_constant< false >
 false_type
 
template<typename T >
using bmb::remove_const_t = remove_const< T >::type
 remove_const_t
 
template<typename T >
using bmb::remove_ref_t = remove_ref< T >::type
 remove_ref_t
 
template<bool Cond, typename IfTrue , typename IfFalse >
using bmb::conditional_t = conditional< Cond, IfTrue, IfFalse >::type
 conditional_t
 
template<bool Cond, typename T = void>
using bmb::enable_if_t = enable_if< Cond, T >::type
 enable_if_t
 
template<typename... >
using bmb::void_t = void
 
template<typename F , typename... Args>
using bmb::invoke_result_t = invoke_result< F, Args... >::type
 invoke_result_t
 

Functions

template<typename T >
T && bmb::declval ()
 declval
 
template<typename T >
true_type bmb::detail::test_is_class (int T::*)
 
template<typename >
false_type bmb::detail::test_is_class (...)
 
template<typename B >
true_type bmb::detail::test_ptr_cast (const B *)
 
template<typename >
false_type bmb::detail::test_ptr_cast (const void *)
 
template<typename B , typename D >
auto bmb::detail::test_is_base_of (int) -> decltype(test_ptr_cast< B >(static_cast< D * >(nullptr)))
 
template<typename , typename >
auto bmb::detail::test_is_base_of (...) -> true_type
 
template<typename F , typename... Args>
auto bmb::detail::invoke () -> decltype(declval< F >()(declval< Args >()...))
 
template<typename F , typename... Args>
true_type bmb::detail::test_is_invocable (decltype(invoke< F, Args... >(), 0))
 
template<typename... >
false_type bmb::detail::test_is_invocable (...)
 

Variables

template<typename... Types>
constexpr bool bmb::conjunction_v = conjunction<Types...>::value
 Logical AND metafunction.
 
template<typename... Types>
constexpr bool bmb::disjunction_v = disjunction<Types...>::value
 Logical OR metafunction.
 
template<typename T , typename U >
constexpr bool bmb::is_same_v = is_same<T, U>::value
 is_same_v
 
template<typename T >
constexpr bool bmb::is_lvalue_ref_v = is_lvalue_ref<T>::value
 is_lvalue_ref_v
 
template<typename T >
constexpr bool bmb::is_rvalue_ref_v = is_rvalue_ref<T>::value
 is_rvalue_ref_v
 
template<typename T >
constexpr bool bmb::is_const_v = is_const<T>::value
 is_const_v
 
template<typename T >
constexpr bool bmb::is_class_v = is_class<T>::value
 is_class_v
 
template<typename T >
constexpr bool bmb::is_pointer_v = is_pointer<T>::value
 is_pointer_v
 
template<typename Base , typename Derived >
constexpr bool bmb::is_base_of_v = is_base_of<Base, Derived>::value
 is_base_of_v
 
template<typename F , typename... Args>
constexpr bool bmb::is_invocable_v = is_invocable<F, Args...>::value
 is_invocable_v
 

Detailed Description

Authors
bivafra