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 |
|---|---|
|
|
Split |
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.