X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/dccf1b41e9c7b5a696f01abceaa2779fe65f154f..680abdb047c1a66d3ccc14cad518117773c3cc8c:/include/xbt/functional.hpp diff --git a/include/xbt/functional.hpp b/include/xbt/functional.hpp index 7596ef6f1e..ca034ba73a 100644 --- a/include/xbt/functional.hpp +++ b/include/xbt/functional.hpp @@ -21,8 +21,8 @@ #include #include -#include -#include +#include "xbt/sysdep.h" +#include "xbt/utility.hpp" namespace simgrid { namespace xbt { @@ -39,11 +39,12 @@ public: {} void operator()() const { + char noarg[] = {'\0'}; const int argc = args_->size(); std::vector args = *args_; std::unique_ptr argv(new char*[argc + 1]); for (int i = 0; i != argc; ++i) - argv[i] = args[i].empty() ? const_cast(""): &args[i].front(); + argv[i] = args[i].empty() ? noarg : &args[i].front(); argv[argc] = nullptr; code_(argc, argv.get()); } @@ -231,9 +232,7 @@ private: vtable_ = &vtable; } - template - typename std::enable_if()>::type - init(F code) + template typename std::enable_if()>::type init(F code) { const static TaskVtable vtable { // Call: