ParallelForEachBody¶
[req.parallel_for_each_body]
A type Body satisfies ParallelForBody if it meets the Function Objects requirements described in the [function.objects] section of the ISO C++ standard. It should also meet one of the following requirements:
ParallelForEachBody Requirements: Pseudo-Signature, Semantics
-
Body::operator()(ItemType item) const¶
Process the received item.
-
Body::operator()(ItemType item, oneapi::tbb::feeder<ItemType> &feeder) const¶
Process the received item. May invoke the
feeder.add(T)
function to spawn additional items.
Note
ItemType
may be optionally passed to Body::operator()
by reference.
const
and volatile
type qualifiers are also applicable.
Terms¶
iterator
determines the type of the iterator passed into theparallel_for_each
algorithm, which isdecltype(std::begin(c))
for the overloads that accept theContainer
template argument orInputIterator
.value_type
- the typestd::iterator_traits<iterator>::value_type
.reference
- the typestd::iterator_traits<iterator>::reference
.
oneapi::tbb::parallel_for_each
requires the Body::operator()
call with an object of the reference
type to be well-formed if
the iterator
meets the Forward iterator requirements described in the [forward.iterators] section of the
ISO C++ Standard.
oneapi::tbb::parallel_for_each algorithm
requires the Body::operator()
call with an object of type const value_type&
or value_type&&
to be well-formed if following requirements are met:
the iterator meets the Input iterator requirements described in the [input.iterators] section of the ISO C++ Standard
the iterator does not meet the Forward iterator requirements described in the [forward.iterators] section of the ISO C++ Standard
Caution
If the Body
only takes non-const lvalue reference to the value_type
, the requirements described above
are violated, and the program can be ill-formed.
Additional elements submitted into oneapi::tbb::parallel_for_each
through the feeder::add
are passed to the Body
as rvalues. In this case, the corresponding
execution of the Body
is required to be well-formed.
See also: