uTL
micro Template library
integral.h File Reference
#include <utl/core/impl.h>
#include <type_traits>
#include <utility>

Go to the source code of this file.

Classes

struct  utl::meta::nil_
 

Namespaces

 utl
 STL's core language concepts.
 
 utl::meta
 

Typedefs

template<typename Tp >
using utl::meta::eval = typename Tp::type
 Type alias for Tp::type. Used to evaluate/extract return type of metafunctions. More...
 
using utl::meta::Npos = size_< index_t(-1)>
 The last position we can express for indexing. More...
 
template<typename Tp , Tp v>
using utl::meta::integral_ = std::integral_constant< Tp, v >
 
template<bool v>
using utl::meta::bool_ = integral_< bool, v >
 bool_ type: integral constant wrapper for bool More...
 
using utl::meta::true_ = bool_< true >
 The type used as a compile-time boolean with true value. More...
 
using utl::meta::false_ = bool_< false >
 The type used as a compile-time boolean with false value. More...
 
template<int8_t v>
using utl::meta::int8_ = integral_< int8_t, v >
 int8_ type: integral constant wrapper for int8_t More...
 
template<uint8_t v>
using utl::meta::uint8_ = integral_< uint8_t, v >
 uint8_ type: integral constant wrapper for uint8_t More...
 
template<int16_t v>
using utl::meta::int16_ = integral_< int16_t, v >
 int16_ type: integral constant wrapper for int16_t More...
 
template<uint16_t v>
using utl::meta::uint16_ = integral_< uint16_t, v >
 uint16_ type: integral constant wrapper for uint16_t More...
 
template<int32_t v>
using utl::meta::int32_ = integral_< int32_t, v >
 int32_ type: integral constant wrapper for int32_t More...
 
template<uint32_t v>
using utl::meta::uint32_ = integral_< uint32_t, v >
 uint32_ type: integral constant wrapper for uint32_t More...
 
template<char v>
using utl::meta::char_ = integral_< char, v >
 char_ type: integral constant wrapper for char More...
 
template<int v>
using utl::meta::int_ = integral_< int, v >
 int_ type: integral constant wrapper for int More...
 
template<long v>
using utl::meta::long_ = integral_< long, v >
 long_ type: integral constant wrapper for long More...
 
template<index_t v>
using utl::meta::index_ = integral_< index_t, v >
 index_ type: integral constant wrapper for index_t a.k.a std::size_t More...
 
template<size_t v>
using utl::meta::size_ = integral_< size_t, v >
 size_ type: integral constant wrapper for size_t a.k.a std::size_t More...
 
template<typename Tp >
using utl::meta::sizeof_ = size_< sizeof(Tp)>
 
template<typename Tp >
using utl::meta::alignof_ = size_< alignof(Tp)>
 
template<class Tp , Tp... Ints>
using utl::meta::integer_sequence = std::integer_sequence< Tp, Ints... >
 
template<typename Tp , Tp Num>
using utl::meta::make_integer_sequence = std::make_integer_sequence< Tp, Num >
 
template<index_t... Idx>
using utl::meta::index_sequence = integer_sequence< index_t, Idx... >
 Alias template index_sequence. More...
 
template<index_t Num>
using utl::meta::make_index_sequence = make_integer_sequence< index_t, Num >
 Alias template make_index_sequence. More...
 
template<typename... Types>
using utl::meta::index_sequence_for = make_index_sequence< sizeof...(Types)>
 Alias template index_sequence_for. More...