X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/340cf8df326e4bbb67c046172f8a73eecc6a3583..4667db33a753d88cbcd186f191fb1e65f49f4bd6:/include/xbt/dynar.hpp diff --git a/include/xbt/dynar.hpp b/include/xbt/dynar.hpp index 7ef2e68f4f..2129007223 100644 --- a/include/xbt/dynar.hpp +++ b/include/xbt/dynar.hpp @@ -8,7 +8,6 @@ #define SIMGRId_XBT_DYNAR_HPP #include - #include #include @@ -33,7 +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