General Utility Library for C++14  2.9
Classes | Typedefs
gul14/traits.h

Detailed Description

Type traits and helpers for metaprogramming.

Classes

struct  gul14::IsContainerLike< T, typename >
 Helper type trait object to determine if a type is a container. More...
 

Typedefs

template<typename T >
using gul14::remove_cvref = typename std::remove_cv< std::remove_reference_t< T > >
 A template metafunction that removes const, volatile, and reference qualifiers from a type. More...
 
template<typename T >
using gul14::remove_cvref_t = typename remove_cvref< T >::type
 A template metafunction that removes const, volatile, and reference qualifiers from a type. More...
 
template<typename... >
using gul14::void_t = void
 A type mapping an arbitrary list of types to void (for SFINAE). More...
 

Typedef Documentation

◆ remove_cvref

template<typename T >
using gul14::remove_cvref = typedef typename std::remove_cv<std::remove_reference_t<T> >

A template metafunction that removes const, volatile, and reference qualifiers from a type.

The stripped type is available in the member typedef type.

This is a substitute for C++20's std::remove_cvref.

Since
GUL version 2.9

◆ remove_cvref_t

template<typename T >
using gul14::remove_cvref_t = typedef typename remove_cvref<T>::type

A template metafunction that removes const, volatile, and reference qualifiers from a type.

This is a substitute for C++20's std::remove_cvref_t.

Since
GUL version 2.9

◆ void_t

template<typename... >
using gul14::void_t = typedef void

A type mapping an arbitrary list of types to void (for SFINAE).

This is a helper metafunction to substitute C++17's std::void_t.

Since
GUL version 2.9