Simple-Utility v2.3.1
Loading...
Searching...
No Matches
TypeTraits.hpp File Reference
#include <type_traits>
#include "Simple-Utility/concepts/stl_extensions.hpp"
Include dependency graph for TypeTraits.hpp:

Go to the source code of this file.

Classes

struct  sl::cv_qualified_type< T >
 Primary template, taking the T as-is. More...
 
struct  sl::cv_qualified_type< T >
 Specialization, unwrapping reference types. More...
 
struct  sl::add_type_const< T >
 Primary template, adding const to value types. More...
 
struct  sl::add_type_const< T & >
 Specialization, unwrapping lvalue reference types. More...
 
struct  sl::add_type_const< T && >
 Specialization, unwrapping rvalue reference types. More...
 
struct  sl::add_type_const< T * >
 Specialization, unwrapping pointer types. More...
 
struct  sl::add_type_const< T *volatile >
 Specialization, unwrapping volatile pointer types. More...
 
struct  sl::add_type_const< T *const >
 Specialization, unwrapping const pointer types. More...
 
struct  sl::add_type_const< T *const volatile >
 Specialization, unwrapping const volatile pointer types. More...
 
struct  sl::remove_type_const< T >
 Primary template, removing const from value types. More...
 
struct  sl::remove_type_const< T & >
 Specialization, unwrapping lvalue reference types. More...
 
struct  sl::remove_type_const< T && >
 Specialization, unwrapping rvalue reference types. More...
 
struct  sl::remove_type_const< T * >
 Specialization, unwrapping pointer types. More...
 
struct  sl::remove_type_const< T *volatile >
 Specialization, unwrapping volatile pointer types. More...
 
struct  sl::remove_type_const< T *const >
 Specialization, unwrapping const pointer types. More...
 
struct  sl::remove_type_const< T *const volatile >
 Specialization, unwrapping const volatile pointer types. More...
 
struct  sl::add_type_volatile< T >
 Primary template, adding volatile to value types. More...
 
struct  sl::add_type_volatile< T & >
 Specialization, unwrapping lvalue reference types. More...
 
struct  sl::add_type_volatile< T && >
 Specialization, unwrapping rvalue reference types. More...
 
struct  sl::add_type_volatile< T * >
 Specialization, unwrapping pointer types. More...
 
struct  sl::add_type_volatile< T *volatile >
 Specialization, unwrapping volatile pointer types. More...
 
struct  sl::add_type_volatile< T *const >
 Specialization, unwrapping const pointer types. More...
 
struct  sl::add_type_volatile< T *const volatile >
 Specialization, unwrapping const volatile pointer types. More...
 
struct  sl::remove_type_volatile< T >
 Primary template, removing volatile from value types. More...
 
struct  sl::remove_type_volatile< T & >
 Specialization, unwrapping lvalue reference types. More...
 
struct  sl::remove_type_volatile< T && >
 Specialization, unwrapping rvalue reference types. More...
 
struct  sl::remove_type_volatile< T * >
 Specialization, unwrapping pointer types. More...
 
struct  sl::remove_type_volatile< T *volatile >
 Specialization, unwrapping volatile pointer types. More...
 
struct  sl::remove_type_volatile< T *const >
 Specialization, unwrapping const pointer types. More...
 
struct  sl::remove_type_volatile< T *const volatile >
 Specialization, unwrapping const volatile pointer types. More...
 
struct  sl::add_type_cv< T >
 Primary template, adding const and volatile to value types. More...
 
struct  sl::remove_type_cv< T >
 Primary template, removing const and volatile from value types. More...
 
struct  sl::value_category_as< To, From >
 Primary template, removing any reference category. More...
 
struct  sl::value_category_as< To, From & >
 Specialization, applying the lvalue reference category. More...
 
struct  sl::value_category_as< To, From && >
 Specialization, applying the rvalue reference category. More...
 
struct  sl::type_constness_as< To, From >
 Applies or removes the const qualification of To in regards of From. More...
 
struct  sl::type_volatileness_as< To, From >
 Applies or removes the volatile qualification of To in regards of From. More...
 
struct  sl::type_qualification_as< To, From >
 Applies or removes the const and/or volatile qualifications of To in regards of From. More...
 
struct  sl::qualified_category_as< To, From >
 

Namespaces

namespace  sl
 

Typedefs

template<class T >
using sl::cv_qualified_type_t = typename cv_qualified_type< T >::type
 Convenience alias, exposing the type member alias of the cv_qualified_type trait.
 
template<class T >
using sl::add_type_const_t = typename add_type_const< T >::type
 Convenience alias, exposing the type member alias of the add_type_const trait.
 
template<class T >
using sl::remove_type_const_t = typename remove_type_const< T >::type
 Convenience alias, exposing the type member alias of the remove_type_const trait.
 
template<class T >
using sl::add_type_volatile_t = typename add_type_volatile< T >::type
 Convenience alias, exposing the type member alias of the add_type_volatile trait.
 
template<class T >
using sl::remove_type_volatile_t = typename remove_type_volatile< T >::type
 Convenience alias, exposing the type member alias of the remove_type_volatile trait.
 
template<class T >
using sl::add_type_cv_t = typename add_type_cv< T >::type
 Convenience alias, exposing the type member alias of the add_type_cv trait.
 
template<class T >
using sl::remove_type_cv_t = typename remove_type_cv< T >::type
 Convenience alias, exposing the type member alias of the remove_type_cv trait.
 
template<class To , class From >
using sl::value_category_as_t = typename value_category_as< To, From >::type
 Convenience alias, exposing the type member alias of the value_category_as trait.
 
template<class To , class From >
using sl::type_constness_as_t = typename type_constness_as< To, From >::type
 Convenience alias, exposing the type member alias of the type_constness_as trait.
 
template<class To , class From >
using sl::type_volatileness_as_t = typename type_volatileness_as< To, From >::type
 Convenience alias, exposing the type member alias of the type_volatileness_as trait.
 
template<class To , class From >
using sl::type_qualification_as_t = typename type_qualification_as< To, From >::type
 Convenience alias, exposing the type member alias of the type_qualification_as trait.
 
template<class To , class From >
using sl::qualified_category_as_t = typename qualified_category_as< To, From >::type
 Convenience alias, exposing the type member alias of the qualified_category_as trait.