Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[sonar] Don't use default capture for lambda.
authorArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Fri, 25 Jan 2019 09:02:52 +0000 (10:02 +0100)
committerArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Fri, 25 Jan 2019 11:31:34 +0000 (12:31 +0100)
include/simgrid/simix.hpp
include/xbt/future.hpp

index 7137598..b01db14 100644 (file)
@@ -61,7 +61,7 @@ template <class F> typename std::result_of<F()>::type simcall(F&& code)
   // conveniently handles the success/failure value for us.
   typedef typename std::result_of<F()>::type R;
   simgrid::xbt::Result<R> result;
-  simcall_run_kernel([&] { simgrid::xbt::fulfill_promise(result, std::forward<F>(code)); });
+  simcall_run_kernel([&result, &code] { simgrid::xbt::fulfill_promise(result, std::forward<F>(code)); });
   return result.get();
 }
 
@@ -91,7 +91,7 @@ smx_timer_t SIMIX_timer_set(double date, F callback)
 template<class R, class T> inline
 smx_timer_t SIMIX_timer_set(double date, R(*callback)(T*), T* arg)
 {
-  return SIMIX_timer_set(date, [=](){ callback(arg); });
+  return SIMIX_timer_set(date, [callback, arg]() { callback(arg); });
 }
 
 #endif
index e0f51f8..30d9240 100644 (file)
@@ -257,7 +257,7 @@ XBT_ATTRIB_DEPRECATED_v323("Please use xbt::fulfill_promise()") auto fulfillProm
  */
 template <class P, class F> inline void set_promise(P& promise, F&& future)
 {
-  fulfill_promise(promise, [&] { return std::forward<F>(future).get(); });
+  fulfill_promise(promise, [&future] { return std::forward<F>(future).get(); });
 }
 
 }