23 #ifndef GUL14_TRAITS_H_
24 #define GUL14_TRAITS_H_
26 #include <type_traits>
46 template <
typename T,
typename =
int>
51 typename std::enable_if_t<true,
52 decltype(std::declval<T>().cbegin(),
53 std::declval<T>().cend(),
54 std::declval<typename T::value_type>(),
69 using remove_cvref =
typename std::remove_cv<std::remove_reference_t<T>>;
91 template <
typename...>
Definition of macros used internally by GUL.
Namespace gul14 contains all functions and classes of the General Utility Library.
Definition: doxygen.h:26
typename remove_cvref< T >::type remove_cvref_t
A template metafunction that removes const, volatile, and reference qualifiers from a type.
Definition: traits.h:81
void void_t
A type mapping an arbitrary list of types to void (for SFINAE).
Definition: traits.h:92
typename std::remove_cv< std::remove_reference_t< T > > remove_cvref
A template metafunction that removes const, volatile, and reference qualifiers from a type.
Definition: traits.h:69
Helper type trait object to determine if a type is a container.
Definition: traits.h:47