# ParallelReduceBody

[req.parallel_reduce_body]

A type Body satisfies ParallelReduceBody if it meets the following requirements:

ParallelReduceBody Requirements: Pseudo-Signature, Semantics

Body::Body(Body&, split)

  Splitting constructor. Must be able to run concurrently with `operator()` and method `join`.

Body::~Body()

  Destructor.

void Body::operator()(const Range &range)

  Accumulates result for a subrange. `Range` type must meet the Range requirements.

void Body::join(Body &rhs)

  Joins results. The result in rhs should be merged into the result of `this`.

See also:

- parallel_reduce algorithm

- parallel_deterministic_reduce algorithm