cppx-core
Namespaces | Typedefs | Functions
type-makers.hpp File Reference

Type_choice_, Unptr_, Unref_, Signed_, Unsigned_, Const_, Unconst_ and Array_of_. More...

#include <cppx-core/language/syntax/type-assemblers.hpp>
#include <c/stddef.hpp>
#include <array>
#include <type_traits>
Include dependency graph for type-makers.hpp:

Go to the source code of this file.

Namespaces

 cppx
 
 cppx::type_makers
 Type_choice_, Unptr_, Unref_, Signed_, Unsigned_, Const_, Unconst_ and Array_of_.
 
 cppx::all_type_builders
 

Typedefs

template<bool condition, class A , class B >
using cppx::Type_choice_ = std::conditional_t< condition, A, B >
 Reduces to type A if the condition holds, otherwise type B. More...
 
template<class Some_pointer_type >
using cppx::Unptr_ = std::remove_pointer_t< Some_pointer_type >
 Reduces a type T* to just T. More...
 
template<class Some_reference_type >
using cppx::Unref_ = std::remove_reference_t< Some_reference_type >
 Reduces a type T& or T&& to just T. More...
 
template<class Integer >
using cppx::Signed_ = std::make_signed_t< Integer >
 For an integer type, produces the corresponding signed type. More...
 
template<class Integer >
using cppx::Unsigned_ = std::make_unsigned_t< Integer >
 For an integer type, produces the corresponding unsigned type. More...
 
template<class Some_type >
using cppx::Const_ = std::add_const_t< Some_type >
 For a type T produces const T. More...
 
template<class Some_type >
using cppx::Unconst_ = std::remove_const_t< Some_type >
 For a type const T produces plain T. More...
 
template<size_t n, class Item >
using cppx::Array_of_ = std::array< Item, n >
 Array_of_<n, T> is just more left-to-right direction readable than std::array<T, n>, which is the type it produces. More...
 

Functions

 cppx::type_makers::CPPX_USE_CPPX (Type_choice_, Unptr_, Unref_, Signed_, Unsigned_, Const_, Unconst_, Array_of_)
 

Detailed Description

Type_choice_, Unptr_, Unref_, Signed_, Unsigned_, Const_, Unconst_ and Array_of_.

Definition in file type-makers.hpp.