Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' of github.com:simgrid/simgrid
[simgrid.git] / include / xbt / dynar.hpp
index a1b49c7..d9f77b5 100644 (file)
@@ -1,11 +1,11 @@
-/* Copyright (c) 2004-2007, 2009-2015. The SimGrid Team.
+/* Copyright (c) 2004-2007, 2009-2017. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
-#ifndef SIMGRId_XBT_DYNAR_HPP
-#define SIMGRId_XBT_DYNAR_HPP
+#ifndef SIMGRID_XBT_DYNAR_HPP
+#define SIMGRID_XBT_DYNAR_HPP
 
 #include <boost/range/iterator_range.hpp>
 #include <xbt/asserts.h>
@@ -32,6 +32,14 @@ DynarRange<T> range(xbt_dynar_t dynar)
     (T*) ((char*) dynar->data + dynar->used * dynar->elmsize));
 }
 
+/** Dynar of `T*` which `delete` its values */
+template<class T> inline
+xbt_dynar_t newDeleteDynar()
+{
+  return xbt_dynar_new(sizeof(T*),
+    [](void* p) { delete *(T**)p; });
+}
+
 }
 }
 #endif