From 24f7e767fa184bb60f8f6852131a2a51fd56abfa Mon Sep 17 00:00:00 2001 From: Clement Jamin Date: Thu, 5 Jun 2014 10:59:48 +0200 Subject: [PATCH] Replaced C++11 lambda function by functor --- .../cc_benchmark.cpp | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/STL_Extension/benchmark/compact_container_benchmark/cc_benchmark.cpp b/STL_Extension/benchmark/compact_container_benchmark/cc_benchmark.cpp index 6d216c80acc..bf45a51e552 100644 --- a/STL_Extension/benchmark/compact_container_benchmark/cc_benchmark.cpp +++ b/STL_Extension/benchmark/compact_container_benchmark/cc_benchmark.cpp @@ -47,6 +47,7 @@ inline void compute_the_thing(Truc &thing) } #ifdef CGAL_LINKED_WITH_TBB +// For parallel_for template class Change_array_functor { @@ -65,6 +66,8 @@ private: Array_t &m_v; }; +// For parallel_for +// Specialization for std::vector template <> class Change_array_functor > { @@ -82,6 +85,17 @@ private: std::vector &m_v; }; +// For parallel_do +template +class Change_array_functor_2 +{ +public: + void operator() (typename Array_t::value_type& truc) const + { + compute_the_thing(truc); + } +}; + // Parallel_for // For vector only double change_array(std::vector &v, Parallel_for_tag) @@ -125,10 +139,7 @@ double change_array(Array_t &v, Parallel_do_tag) t.start(); tbb::parallel_do( v.begin(), v.end(), - []( typename Array_t::value_type& truc ) // CJTODO: lambdas ok? - { - compute_the_thing(truc); - }); + Change_array_functor_2()); t.stop(); std::cout << " done in " << t.time() << " seconds." << std::endl; return t.time();