X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/9f6cbb176d4301cae36a945dfa57e6b6a9cbafef..ab1a94e98438ed2d29533aca9e613d667237c3d0:/include/xbt/dynar.hpp diff --git a/include/xbt/dynar.hpp b/include/xbt/dynar.hpp index a1b49c7643..2129007223 100644 --- a/include/xbt/dynar.hpp +++ b/include/xbt/dynar.hpp @@ -32,6 +32,22 @@ DynarRange range(xbt_dynar_t dynar) (T*) ((char*) dynar->data + dynar->used * dynar->elmsize)); } +/** Dynar of `T*` which `delete` its values */ +template inline +xbt_dynar_t newDeleteDynar() +{ + return xbt_dynar_new(sizeof(T*), + [](void* p) { delete *(T**)p; }); +} + +/** Dynar of `T*` which `destroy()` its values */ +template inline +xbt_dynar_t newDestroyDynar() +{ + return xbt_dynar_new(sizeof(T*), + [](void* p) { simgrid::xbt::destroy(*(T**)p); }); +} + } } #endif