halcheck 1.0
Loading...
Searching...
No Matches
lib/type_traits

Metaprogramming utilities. More...

Classes

struct  halcheck::lib::conjunction< Args >
 An implementation of std::conjunction. More...
 
struct  halcheck::lib::disjunction< Args >
 An implementation of std::disjunction. More...
 
struct  halcheck::lib::type_identity< T,... >
 An implementation of std::type_identity. More...
 
struct  halcheck::lib::is_detected< Op, Args >
 An implementation of std::experimental::is_detected. More...
 
struct  halcheck::lib::is_swappable< T >
 An implementation of std::is_swappable. More...
 
struct  halcheck::lib::is_nothrow_swappable< T >
 An implementation of std::is_nothrow_swappable. More...
 
struct  halcheck::lib::is_boolean_testable< B >
 Determines if a type is satisfies the boolean-testable concept. More...
 
struct  halcheck::lib::is_equality_comparable< T >
 Determines if a type satisfies the EqualityComparable concept. More...
 
struct  halcheck::lib::is_hashable< T >
 Determines if a type has a valid std::hash specialization. More...
 
struct  halcheck::lib::is_printable< T, CharT, Traits >
 Determines whether a type is printable (i.e. can be output on a std::basic_ostream ). More...
 
struct  halcheck::lib::is_parsable< T, CharT, Traits >
 Determines whether a type is parsable (i.e. can be read from a std::basic_istream ). More...
 
struct  halcheck::lib::is_specialization_of< T, F >
 Determines if a type is a specialization of a template class. More...
 

Macros

#define HALCHECK_REQUIRE(...)
 Expands to a template argument that is only valid if the given argument evaluates to true.
 
#define HALCHECK_REQUIRE_(...)
 A version of HALCHECK_REQUIRE usable in forward and friend declarations.
 

Typedefs

template<typename... >
using halcheck::lib::void_t = void
 An implementation of std::void_t.
 
template<bool Cond, typename T , typename F >
using halcheck::lib::conditional_t = typename std::conditional<Cond, T, F>::type
 An implementation of std::conditional_t.
 
template<bool Cond, typename T = void>
using halcheck::lib::enable_if_t = typename std::enable_if<Cond, T>::type
 An implementation of std::enable_if_t.
 
template<typename T >
using halcheck::lib::decay_t = typename std::decay<T>::type
 An implementation of std::decay_t.
 
template<typename T >
using halcheck::lib::remove_cv_t = typename std::remove_cv<T>::type
 An implementation of std::remove_cv_t.
 
template<typename T >
using halcheck::lib::remove_extent_t = typename std::remove_extent<T>::type
 An implementation of std::remove_extent_t.
 
template<typename T >
using halcheck::lib::make_unsigned_t = typename std::make_unsigned<T>::type
 An implementation of std::make_unsigned_t.
 
template<typename... Args>
using halcheck::lib::common_type_t = typename std::common_type<Args...>::type
 An implementation of std::common_type_t.
 
template<typename T >
using halcheck::lib::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 halcheck::lib::type_identity_t = T
 An implementation of std::type_identity_t.
 
template<std::size_t I, typename T >
using halcheck::lib::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 halcheck::lib::remove_reference_t = typename std::remove_reference<T>::type
 An implementation of std::remove_reference_t.
 
template<typename T >
using halcheck::lib::remove_const_t = typename std::remove_const<T>::type
 An implementation of std::remove_const_t.
 
template<typename T >
using halcheck::lib::make_signed_t = typename std::make_signed<T>::type
 An implementation of std::make_signed_t.
 
template<typename T >
using halcheck::lib::add_lvalue_reference_t = typename std::add_lvalue_reference<T>::type
 An implementation of std::add_lvalue_reference_t.
 
template<typename T >
using halcheck::lib::add_rvalue_reference_t = typename std::add_rvalue_reference<T>::type
 An implementation of std::add_rvalue_reference_t.
 
template<typename T >
using halcheck::lib::add_const_t = typename std::add_const<T>::type
 An implementation of std::add_const_t.
 
template<typename T >
using halcheck::lib::add_pointer_t = typename std::add_pointer<T>::type
 An implementation of std::add_pointer_t.
 
template<typename T >
using halcheck::lib::remove_pointer_t = typename std::remove_pointer<T>::type
 An implementation of std::remove_pointer_t.
 

Detailed Description

Metaprogramming utilities.

See also
https://en.cppreference.com/w/cpp/header/type_traits