36 #ifndef LIB_IDI_GENFUNC_H 37 #define LIB_IDI_GENFUNC_H 63 string instance_format (
string const& prefix,
size_t instanceNr);
64 string instance_hex_format (
string const& prefix,
size_t instanceNr);
80 return lib::meta::primaryTypeComponent (
typeid(TY).
name());
92 return lib::meta::sanitisedFullTypeName (
typeid(TY).
name());
99 return typeSymbol<TY>();
102 template<
typename TY>
106 return typeSymbol<TY>();
114 template<
typename TY>
118 return format::instance_hex_format (namePrefix<TY>(), (
size_t(obj) /
alignof(TY)) % (1<<16));
138 return format::instance_format (namePrefix<TY>(), sharedInstanceCounter().inc<TY>());
152 return format::instance_format (prefix + typeFullID<TY>(), sharedInstanceCounter().inc<TY>());
158 template<
typename TY>
162 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.