34#ifndef __CLAW_TYPES_HPP__
35#define __CLAW_TYPES_HPP__
39#ifdef CLAW_HAS_LONG_LONG
42 non_standard_signed_types;
45 non_standard_unsigned_types;
78 template <std::
size_t Size,
typename TypeList>
82 typedef typename TypeList::head_type head_type;
83 typedef typename TypeList::queue_type queue_type;
90 sizeof(head_type) * 8 == Size, head_type,
96 template <std::
size_t Size>
110 template <std::
size_t Size>
123 template <std::
size_t Size>
Structures for meta-programming.
This is the main namespace.
integer_of_size< 16 >::type int_16
An integer on 16 bits.
meta::type_list< signed char, meta::type_list< signed short, meta::type_list< signed int, non_standard_signed_types > > > signed_integers
This is the list of c++ signed integer types.
unsigned_integer_of_size< 16 >::type u_int_16
An unsigned integer on 16 bits.
integer_of_size< 32 >::type int_32
An integer on 32 bits.
unsigned_integer_of_size< 8 >::type u_int_8
An unsigned integer on 8 bits.
unsigned_integer_of_size< 32 >::type u_int_32
An unsigned integer on 32 bits.
meta::type_list< unsigned char, meta::type_list< unsigned short, meta::type_list< unsigned int, non_standard_unsigned_types > > > unsigned_integers
This is the list of c++ unsigned integer types.
integer_of_size< 8 >::type int_8
An integer on 8 bits.
This meta class finds, in a list of types, the first type stored exactly with a given number of bits.
meta::if_then_else< sizeof(head_type) *8==Size, head_type, typenamefind_type_by_size< Size, queue_type >::type >::result type
If the size of head_type matches the desired one, then the result is head_type, otherwise we search t...
Define the type of a signed integer stored with a given number of bits. Template parameters.
find_type_by_size< Size, signed_integers >::type type
The integer type that matches the given size.
Define the type of an unsigned integer stored with a given number of bits. Template parameters.
find_type_by_size< Size, unsigned_integers >::type type
The integer type that matches the given size.
Template classes for lists of types.