mirror of https://github.com/CGAL/cgal
Replaced C++11 lambda function by functor
This commit is contained in:
parent
b5a4a4d88d
commit
24f7e767fa
|
|
@ -47,6 +47,7 @@ inline void compute_the_thing(Truc &thing)
|
|||
}
|
||||
|
||||
#ifdef CGAL_LINKED_WITH_TBB
|
||||
// For parallel_for
|
||||
template <typename Array_t>
|
||||
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<std::vector<Truc> >
|
||||
{
|
||||
|
|
@ -82,6 +85,17 @@ private:
|
|||
std::vector<Truc> &m_v;
|
||||
};
|
||||
|
||||
// For parallel_do
|
||||
template <typename Array_t>
|
||||
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<Truc> &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<Array_t>());
|
||||
t.stop();
|
||||
std::cout << " done in " << t.time() << " seconds." << std::endl;
|
||||
return t.time();
|
||||
|
|
|
|||
Loading…
Reference in New Issue