Generates UIDs (unique IDs) per class T starting from 1.
This generator uses a bitwise increment (0001 -> 0010 -> 0100 -> 1000).
In debug mode, generating more UIDs than there are bits available for an unsigned int of type "uint_type" will trigger an assertion and fail.
#include <UIDGenerators.h>
Public Types | |
using | uint_type = UINT |
using | generator_type = bit_generated_tag |
Public Member Functions | |
WALBERLA_STATIC_ASSERT (std::numeric_limits< UINT >::is_specialized &&std::numeric_limits< UINT >::is_integer &&!std::numeric_limits< UINT >::is_signed) | |
Static Public Member Functions | |
static uint_type | generateUID () |
static uint_type | firstUID () |
static uint_type | nextUID (const uint_type uid) |
static uint_type | toIndex (const uint_type uid) |
static uint_type | toBitMask (const uint_type uid) |
static const char * | getType () |
using walberla::uid::BitGenerator< T, UINT >::generator_type = bit_generated_tag |
using walberla::uid::BitGenerator< T, UINT >::uint_type = UINT |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
walberla::uid::BitGenerator< T, UINT >::WALBERLA_STATIC_ASSERT | ( | std::numeric_limits< UINT >::is_specialized &&std::numeric_limits< UINT >::is_integer &&!std::numeric_limits< UINT >::is_signed | ) |