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
|
#ifdef CGAL_LINKED_WITH_TBB
|
||||||
|
// For parallel_for
|
||||||
template <typename Array_t>
|
template <typename Array_t>
|
||||||
class Change_array_functor
|
class Change_array_functor
|
||||||
{
|
{
|
||||||
|
|
@ -65,6 +66,8 @@ private:
|
||||||
Array_t &m_v;
|
Array_t &m_v;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// For parallel_for
|
||||||
|
// Specialization for std::vector
|
||||||
template <>
|
template <>
|
||||||
class Change_array_functor<std::vector<Truc> >
|
class Change_array_functor<std::vector<Truc> >
|
||||||
{
|
{
|
||||||
|
|
@ -82,6 +85,17 @@ private:
|
||||||
std::vector<Truc> &m_v;
|
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
|
// Parallel_for
|
||||||
// For vector only
|
// For vector only
|
||||||
double change_array(std::vector<Truc> &v, Parallel_for_tag)
|
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();
|
t.start();
|
||||||
tbb::parallel_do(
|
tbb::parallel_do(
|
||||||
v.begin(), v.end(),
|
v.begin(), v.end(),
|
||||||
[]( typename Array_t::value_type& truc ) // CJTODO: lambdas ok?
|
Change_array_functor_2<Array_t>());
|
||||||
{
|
|
||||||
compute_the_thing(truc);
|
|
||||||
});
|
|
||||||
t.stop();
|
t.stop();
|
||||||
std::cout << " done in " << t.time() << " seconds." << std::endl;
|
std::cout << " done in " << t.time() << " seconds." << std::endl;
|
||||||
return t.time();
|
return t.time();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue