38 #ifndef DOXYGEN_SHOULD_SKIP_THIS
49 typedef char (&no_type)[1];
50 typedef char (&yes_type)[2];
51 template <
typename U,
void (U::*)()>
struct V {};
52 template <
typename U>
static yes_type check(V<U, &U::Initialize>*);
53 template <
typename U>
static no_type check(...);
55 static bool const value =
sizeof(check<T>(0)) ==
sizeof(yes_type);
61 typedef char (&no_type)[1];
62 typedef char (&yes_type)[2];
63 template <
typename U,
void (U::*)() const>
struct V {};
64 template <
typename U>
static yes_type check(V<U, &U::Initialize>*);
65 template <
typename U>
static no_type check(...);
67 static bool const value =
sizeof(check<T>(0)) ==
sizeof(yes_type);
70 template <
typename Functor,
bool Init>
73 template <
typename Functor>
92 template <
typename Functor>
100 unsigned char& inited = this->Initialized.
Local();
103 this->F.Initialize();
106 this->F(first, last);
119 template <
typename Functor>
127 template <
typename Functor>
138 #endif // DOXYGEN_SHOULD_SKIP_THIS
151 template <
typename Functor>
155 fi.For(first, last, grain);
166 template <
typename Functor>
170 fi.For(first, last, grain);
181 template <
typename Functor>
195 template <
typename Functor>
209 static void Initialize(
int numThreads=0);
215 static int GetEstimatedNumberOfThreads();
221 template<
typename RandomAccessIterator>
222 static void Sort(RandomAccessIterator begin, RandomAccessIterator end)
233 template<
typename RandomAccessIterator,
typename Compare>
234 static void Sort(RandomAccessIterator begin, RandomAccessIterator end,
#define VTKCOMMONCORE_EXPORT
static void vtkSMPTools_Impl_Sort(RandomAccessIterator begin, RandomAccessIterator end)
static void vtkSMPTools_Impl_For(vtkIdType first, vtkIdType last, vtkIdType grain, FunctorInternal &fi)