27 #ifndef FLECSI_ID_PBITS 28 #define FLECSI_ID_PBITS 20 31 #ifndef FLECSI_ID_EBITS 32 #define FLECSI_ID_EBITS 40 35 #ifndef FLECSI_ID_FBITS 36 #define FLECSI_ID_FBITS 4 39 #ifndef FLECSI_ID_GBITS 40 #define FLECSI_ID_GBITS 60 51 id_<FLECSI_ID_PBITS, FLECSI_ID_EBITS, FLECSI_ID_FBITS, FLECSI_ID_GBITS>;
53 using offset_t = offset<16>;
59 #ifndef FLECSI_COUNTER_TYPE 60 #define FLECSI_COUNTER_TYPE int32_t 63 using counter_t = FLECSI_COUNTER_TYPE;
88 #if !defined(FLECSI_GENERATED_ID_MAX) 90 #define FLECSI_GENERATED_ID_MAX 1044480 101 template<
typename UNIQUENESS_TYPE,
102 typename COUNTER_TYPE = size_t,
103 COUNTER_TYPE MAXIMUM = (std::numeric_limits<COUNTER_TYPE>::max)()>
106 static_assert(std::is_integral<COUNTER_TYPE>::value,
107 "COUNTER_TYPE must be an integral type");
115 assert(
id_ + 1 <= MAXIMUM &&
"id exceeds maximum value");
131 const void *
const address =
static_cast<const void *
>(t);
133 std::stringstream ss;
134 ss <<
typeid(T).name() <<
"-" << address <<
"-" << id;
T square(const T &a)
P.O.D.
Definition: common.hh:72
std::string unique_name(const T *const t)
Create a unique name from the type, address, and unique id.
Definition: common.hh:130
Definition: common.hh:104
Definition: control.hh:31