# Requirements on parallel_scan body

Class `Body` implementing the concept of parallel_scan body must define:

-      Body::Body( Body&, split );

  Splitting constructor. Split `b` so that `this` and `b` can accumulate separately

-      Body::~Body();

  Destructor

-      void Body::operator()( const Range& r, pre_scan_tag );

  Preprocess iterations for range `r`

-      void Body::operator()( const Range& r, final_scan_tag );

  Do final processing for iterations of range `r`

-      void Body::reverse_join( Body& a );

  Merge preprocessing state of `a` into `this`, where `a` was created earlier from `b` by b's splitting constructor

Copyright © 2005-2013 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its subsidiaries in the United States and other countries.

* Other names and brands may be claimed as the property of others.