/* no system header should be loaded out of this file so that we have only */
/* one file to check when porting to another OS */
-/* Copyright (c) 2004-2018. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2004-2019. 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. */
@hideinitializer */
#define xbt_free(p) free(p) /*nothing specific to do here. A poor valgrind replacement? */
+#ifdef __cplusplus
+#define XBT_FREE_NOEXCEPT noexcept(noexcept(::free))
+#else
+#define XBT_FREE_NOEXCEPT
+#endif
+
/** @brief like free, but you can be sure that it is a function */
-XBT_PUBLIC void xbt_free_f(void* p);
+XBT_PUBLIC void xbt_free_f(void* p) XBT_FREE_NOEXCEPT;
/** @brief should be given a pointer to pointer, and frees the second one */
-XBT_PUBLIC void xbt_free_ref(void* d);
+XBT_PUBLIC void xbt_free_ref(void* d) XBT_FREE_NOEXCEPT;
SG_END_DECL()