# MakeEnumPropsT< Tenum_t, Tstorage_t, Tbegin, Tend, Tinvalid, Tnum_bits > Struct Template Reference

Helper template class that makes basic properties of given enumeration type visible from outsize. More...

`#include <enum_type.hpp>`

## Public Types

typedef Tenum_t | type
| enum type (i.e. Trackdir)
typedef Tstorage_t | storage
| storage type (i.e. byte)

## Static Public Attributes

static const Tenum_t | begin = Tbegin
| lowest valid value (i.e. TRACKDIR_BEGIN)
static const Tenum_t | end = Tend
| one after the last valid value (i.e. TRACKDIR_END)
static const Tenum_t | invalid = Tinvalid
| what value is used as invalid value (i.e. INVALID_TRACKDIR)
static const uint | num_bits = Tnum_bits
| Number of bits for storing the enum in command parameters.

## Detailed Description

### template<typename Tenum_t, typename Tstorage_t, Tenum_t Tbegin, Tenum_t Tend, Tenum_t Tinvalid, uint Tnum_bits = 8 * sizeof(Tstorage_t)>
struct MakeEnumPropsT< Tenum_t, Tstorage_t, Tbegin, Tend, Tinvalid, Tnum_bits >

Helper template class that makes basic properties of given enumeration type visible from outsize.

It is used as base class of several EnumPropsT specializations each dedicated to one of commonly used enumeration types.

Parameters:

  | Tenum_t | enumeration type that you want to describe
  | Tstorage_t | what storage type would be sufficient (i.e. byte)
  | Tbegin | first valid value from the contiguous range (i.e. TRACK_BEGIN)
  | Tend | one past the last valid value from the contiguous range (i.e. TRACK_END)
  | Tinvalid | value used as invalid value marker (i.e. INVALID_TRACK)
  | Tnum_bits | Number of bits for storing the enum in command parameters

Definition at line 64 of file enum_type.hpp.

The documentation for this struct was generated from the following file:

- src/core/enum_type.hpp