Name

Splittable Concept — Requirements for a type whose instances can be split into two pieces. Table 3-1 lists the requirements for a splittable type X with instance x

Synopsis

Table 3-1. Splittable Concept

Pseudosignature

Semantics

X::X(X& x, split)

Split x into two parts, one reassigned to x and the other to the newly constructed object.

Description

A type is splittable if it has a splitting constructor that allows an instance to be split into two pieces. The splitting constructor takes as arguments a reference to the original object, and a dummy argument of type split, which is defined by the library. The dummy argument distinguishes the splitting constructor from a copy constructor. After the constructor runs, x and the newly constructed object should represent the two pieces of the original x. The library uses splitting constructors in two contexts:

  • Partitioning a range into two subranges that can be processed concurrently

  • Forking a body (function object) into two bodies that can run concurrently

The following model types provide examples.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.144.193.129