45 #ifndef LIB_IDI_GENFUNC_H 46 #define LIB_IDI_GENFUNC_H 72 string instance_format (
string const& prefix,
size_t instanceNr);
73 string instance_hex_format (
string const& prefix,
size_t instanceNr);
89 return lib::meta::primaryTypeComponent (
typeid(TY).
name());
101 return lib::meta::sanitisedFullTypeName (
typeid(TY).
name());
104 template<
typename TY>
108 return typeSymbol<TY>();
111 template<
typename TY>
115 return typeSymbol<TY>();
123 template<
typename TY>
127 return format::instance_hex_format (namePrefix<TY>(), (
size_t(obj) /
alignof(TY)) % (1<<16));
147 return format::instance_format (namePrefix<TY>(), sharedInstanceCounter().inc<TY>());
161 return format::instance_format (prefix + typeFullID<TY>(), sharedInstanceCounter().inc<TY>());
167 template<
typename TY>
171 return typeid(TY).hash_code();
Creating series of type-based contexts.
Utility providing a set of counters, each tied to a specific type.
string generateExtendedID(string prefix="")
build a long type based identifier, with running counter and custom prefix.
inline string literal This is a marker type to indicate that
Implementation namespace for support and library code.
Marker types to indicate a literal string and a Symbol.
string typeFullID()
Complete unique type identifier.
string typeSymbol()
Short readable type identifier, not necessarily unique or complete.
string instanceTypeID(const TY *const obj)
designation of an distinct object instance
Hash value types and utilities.
size_t HashVal
a STL compatible hash value
string generateSymbolicID()
build a per-type identifier, with type prefix and running counter.