Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Change most mcmini tests to odpor reduction; the unchanged one fails to find the...
[simgrid.git] / include / xbt / automaton.hpp
index 5c3dad8..18a7d6b 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2015. The SimGrid Team.
+/* Copyright (c) 2015-2023. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
 
 #include <xbt/automaton.h>
 
-namespace simgrid {
-namespace xbt {
+namespace simgrid::xbt {
 
 /** Add a proposition to an automaton (the C++ way)
  *
  *  This API hides all the callback and dynamic allocation hell from
  *  the used which can use C++ style functors and lambda expressions.
  */
-template<class F>
-xbt_automaton_propositional_symbol_t add_proposition(
-  xbt_automaton_t a, const char* id, F f)
+template <class F> xbt_automaton_propositional_symbol_t add_proposition(const_xbt_automaton_t a, const char* id, F f)
 {
-  F* callback = new F(std::move(f));
+  auto* callback = new F(std::move(f));
   return xbt_automaton_propositional_symbol_new_callback(
-    a, id,
-    [](void* callback) -> int { return (*(F*)callback)(); },
-    callback,
-    [](void* callback) -> void { delete (F*)callback; }
-  );
+      a, id, [](auto* cb) -> int { return (*(F*)cb)(); }, callback, [](auto* cb) -> void { delete (F*)cb; });
 }
 
-}
-}
+} // namespace simgrid::xbt
 #endif