6#ifndef SIMPLE_UTILITY_TYPE_TRAITS_HPP
7#define SIMPLE_UTILITY_TYPE_TRAITS_HPP
47 template <concepts::reference T>
57 template <concepts::po
inter T>
175 using type = std::remove_const_t<T>;
357 using type = std::remove_volatile_t<T>;
506 template <
class To,
class From>
509 using type = std::remove_reference_t<To>;
517 template <
class To,
class From>
520 using type = std::add_lvalue_reference_t<To>;
528 template <
class To,
class From>
531 using type = std::add_rvalue_reference_t<std::remove_reference_t<To>>;
539 template <
class To,
class From>
558 template <
class To,
class From>
561 using type = std::conditional_t<
562 std::is_const_v<cv_qualified_type_t<From>>,
572 template <
class To,
class From>
591 template <
class To,
class From>
594 using type = std::conditional_t<
595 std::is_volatile_v<cv_qualified_type_t<From>>,
605 template <
class To,
class From>
624 template <
class To,
class From>
637 template <
class To,
class From>
652 template <
class To,
class From>
665 template <
class To,
class From>
typename add_type_const< T >::type add_type_const_t
Convenience alias, exposing the type member alias of the add_type_const trait.
Definition: TypeTraits.hpp:92
typename add_type_cv< T >::type add_type_cv_t
Convenience alias, exposing the type member alias of the add_type_cv trait.
Definition: TypeTraits.hpp:456
typename add_type_volatile< T >::type add_type_volatile_t
Convenience alias, exposing the type member alias of the add_type_volatile trait.
Definition: TypeTraits.hpp:274
typename cv_qualified_type< T >::type cv_qualified_type_t
Convenience alias, exposing the type member alias of the cv_qualified_type trait.
Definition: TypeTraits.hpp:41
typename qualified_category_as< To, From >::type qualified_category_as_t
Convenience alias, exposing the type member alias of the qualified_category_as trait.
Definition: TypeTraits.hpp:666
typename remove_type_const< T >::type remove_type_const_t
Convenience alias, exposing the type member alias of the remove_type_const trait.
Definition: TypeTraits.hpp:183
typename type_constness_as< To, From >::type type_constness_as_t
Convenience alias, exposing the type member alias of the type_constness_as trait.
Definition: TypeTraits.hpp:573
typename remove_type_cv< T >::type remove_type_cv_t
Convenience alias, exposing the type member alias of the remove_type_cv trait.
Definition: TypeTraits.hpp:487
typename type_qualification_as< To, From >::type type_qualification_as_t
Convenience alias, exposing the type member alias of the type_qualification_as trait.
Definition: TypeTraits.hpp:638
typename remove_type_volatile< T >::type remove_type_volatile_t
Convenience alias, exposing the type member alias of the remove_type_volatile trait.
Definition: TypeTraits.hpp:365
typename type_volatileness_as< To, From >::type type_volatileness_as_t
Convenience alias, exposing the type member alias of the type_volatileness_as trait.
Definition: TypeTraits.hpp:606
typename value_category_as< To, From >::type value_category_as_t
Convenience alias, exposing the type member alias of the value_category_as trait.
Definition: TypeTraits.hpp:540
Definition: operators.hpp:15
add_type_const_t< T > * type
Definition: TypeTraits.hpp:121
add_type_const_t< T > *const type
Definition: TypeTraits.hpp:141
add_type_const_t< T > *const volatile type
Definition: TypeTraits.hpp:151
add_type_const_t< T > *volatile type
Definition: TypeTraits.hpp:131
add_type_const_t< T > & type
Definition: TypeTraits.hpp:101
add_type_const_t< T > && type
Definition: TypeTraits.hpp:111
Primary template, adding const to value types.
Definition: TypeTraits.hpp:83
const T type
Definition: TypeTraits.hpp:84
Primary template, adding const and volatile to value types.
Definition: TypeTraits.hpp:447
add_type_const_t< add_type_volatile_t< T > > type
Definition: TypeTraits.hpp:448
add_type_volatile_t< T > * type
Definition: TypeTraits.hpp:303
add_type_volatile_t< T > *const type
Definition: TypeTraits.hpp:323
add_type_volatile_t< T > *const volatile type
Definition: TypeTraits.hpp:333
add_type_volatile_t< T > *volatile type
Definition: TypeTraits.hpp:313
add_type_volatile_t< T > & type
Definition: TypeTraits.hpp:283
add_type_volatile_t< T > && type
Definition: TypeTraits.hpp:293
Primary template, adding volatile to value types.
Definition: TypeTraits.hpp:265
volatile T type
Definition: TypeTraits.hpp:266
cv_qualified_type_t< std::remove_reference_t< T > > type
Definition: TypeTraits.hpp:50
Primary template, taking the T as-is.
Definition: TypeTraits.hpp:32
T type
Definition: TypeTraits.hpp:33
Definition: TypeTraits.hpp:654
value_category_as_t< type_qualification_as_t< To, From >, From > type
Definition: TypeTraits.hpp:657
remove_type_const_t< T > * type
Definition: TypeTraits.hpp:212
remove_type_const_t< T > *const type
Definition: TypeTraits.hpp:232
remove_type_const_t< T > *const volatile type
Definition: TypeTraits.hpp:242
remove_type_const_t< T > *volatile type
Definition: TypeTraits.hpp:222
remove_type_const_t< T > & type
Definition: TypeTraits.hpp:192
remove_type_const_t< T > && type
Definition: TypeTraits.hpp:202
Primary template, removing const from value types.
Definition: TypeTraits.hpp:174
std::remove_const_t< T > type
Definition: TypeTraits.hpp:175
Primary template, removing const and volatile from value types.
Definition: TypeTraits.hpp:478
remove_type_const_t< remove_type_volatile_t< T > > type
Definition: TypeTraits.hpp:479
remove_type_volatile_t< T > * type
Definition: TypeTraits.hpp:394
remove_type_volatile_t< T > *const type
Definition: TypeTraits.hpp:414
remove_type_volatile_t< T > *const volatile type
Definition: TypeTraits.hpp:424
remove_type_volatile_t< T > *volatile type
Definition: TypeTraits.hpp:404
remove_type_volatile_t< T > & type
Definition: TypeTraits.hpp:374
remove_type_volatile_t< T > && type
Definition: TypeTraits.hpp:384
Primary template, removing volatile from value types.
Definition: TypeTraits.hpp:356
std::remove_volatile_t< T > type
Definition: TypeTraits.hpp:357
Applies or removes the const qualification of To in regards of From.
Definition: TypeTraits.hpp:560
std::conditional_t< std::is_const_v< cv_qualified_type_t< From > >, add_type_const_t< To >, remove_type_const_t< To > > type
Definition: TypeTraits.hpp:564
Applies or removes the const and/or volatile qualifications of To in regards of From.
Definition: TypeTraits.hpp:626
type_constness_as_t< type_volatileness_as_t< To, From >, From > type
Definition: TypeTraits.hpp:629
Applies or removes the volatile qualification of To in regards of From.
Definition: TypeTraits.hpp:593
std::conditional_t< std::is_volatile_v< cv_qualified_type_t< From > >, add_type_volatile_t< To >, remove_type_volatile_t< To > > type
Definition: TypeTraits.hpp:597
std::add_lvalue_reference_t< To > type
Definition: TypeTraits.hpp:520
std::add_rvalue_reference_t< std::remove_reference_t< To > > type
Definition: TypeTraits.hpp:531
Primary template, removing any reference category.
Definition: TypeTraits.hpp:508
std::remove_reference_t< To > type
Definition: TypeTraits.hpp:509