31#ifndef FENNEC_LANG_TYPE_TRANSFORMS_H
32#define FENNEC_LANG_TYPE_TRANSFORMS_H
35#include <fennec/lang/type_identity.h>
36#include <fennec/lang/detail/_type_traits.h>
37#include <fennec/lang/detail/_type_transforms.h>
132template<
typename T>
struct decay : detail::_decay<T> {};
134template<
typename T>
using decay_t =
typename decay<T>::type;
143template<
typename T>
struct add_pointer : detail::_add_pointer<T>{};
168 detail::_is_pointer<T>::value,
169 strip_pointers<remove_pointer_t<T>>,
202template<
typename T>
struct remove_reference<T&&> : type_identity<T> {};
241template<
typename T>
struct add_const : detail::_add_const<T> {};
292template<
typename T>
struct add_cv : detail::_add_cv<T> {};
306template<
typename T>
struct remove_cv : detail::_remove_cv<T> {};
typename conditional< B, TrueT, FalseT >::type conditional_t
Shorthand for typename conditional<ConditionV, TrueT, FalseT>::type
Definition conditional_types.h:90
add the const qualifier to the provided type T
Definition type_transforms.h:241
remove the volatile qualifier from the provided type T
Definition type_transforms.h:292
add a reference and the const volatile qualifiers from the provided type T
Definition type_transforms.h:319
add a lvalue reference to T
Definition type_transforms.h:214
adds a pointer level to T
Definition type_transforms.h:143
add a reference to T
Definition type_transforms.h:184
add a rvalue reference to T
Definition type_transforms.h:226
add the volatile qualifier to the provided type T
Definition type_transforms.h:266
remove the const qualifier from the provided type T
Definition type_transforms.h:253
remove the const and volatile qualifiers from the provided type T
Definition type_transforms.h:306
removes references as well as the const and volatile qualifiers from the provided type T
Definition type_transforms.h:332
removes references and pointers as well as the const and volatile qualifiers from the provided type T
Definition type_transforms.h:346
removes a pointer level from T
Definition type_transforms.h:155
remove a reference from T
Definition type_transforms.h:196
remove the volatile qualifier from the provided type T
Definition type_transforms.h:278
removes all pointer levels from T
Definition type_transforms.h:171
Base Class for Type Transformations.
Definition type_identity.h:49
T & type
the type to transform into
Definition type_identity.h:52