34#ifndef LIB_DEL_STASH_H
35#define LIB_DEL_STASH_H
119 WARN (memory,
"Problems on de-allocation: %s", errID.
c());
126 size_t activeEntries = 0;
131 return activeEntries;
136 template<
typename TY>
145 template<
typename TY>
162 template<
typename TY>
170 template<
typename TY>
193 X* victim =
static_cast<X*
> (subject);
201 REQUIRE (objAddress);
215 Killers::iterator pos =
findEntry (objAddress);
218 ENSURE (!
isRegistered (objAddress),
"duplicate deleter registration");
bool operator==(const void *target) const
Killer(KillFun *f, void *t)
bool operator!=(const void *target) const
Manage a collection of deleter functions.
std::vector< Killer > Killers
Killers::iterator findEntry(const void *obj)
void manage(void *obj, KillFun *customDeleter)
bool isRegistered(const void *objAddress)
static void how_to_kill(void *subject)
trampoline function to invoke destructor of the specific target type
void triggerKill(void *objAddress)
DelStash(size_t elms_to_reserve=0)
constexpr const char * c() const
Token or Atom with distinct identity.
Any copy and copy construction prohibited.
lumiera_err lumiera_error(void)
Get and clear current error state.
Lumiera error handling (C++ interface).
Implementation namespace for support and library code.
constexpr IT find(IT, IT, V const &)
Mix-Ins to allow or prohibit various degrees of copying and cloning.
Marker types to indicate a literal string and a Symbol.