size() or clear from context) is denoted .
Space*. The home space serves as manager to many operations used by variables, views, propagators, spaces, and so on. It provides services such as failure management, propagation control, memory management, and so on. To keep the documentation concise the home space is not documented for functions and member functions.
boolis available. This Boolean value controls whether during cloning the data structure at hand will be shared among the newly created cloned space and the original or whether two independent copies are created. Some functions (such as
copyfor spaces (Gecode::Space) or
copyfor propagators (Gecode::Propagator) also feature this argument. Here it is used to pass on the Boolean value to other datastructures used inside spaces or propagators.
The actual value the share argument has is defined by the search engine: when a search engine uses the clone member function of a space it decides whether sharing is to be used in the cloning of the space or not. If the search engine is single-threaded, it will use full sharing (share will be true). Only if the search engine uses concurrency or parallelism with more than a single thread, it will pass false as value. This means that by not sharing data structures among spaces which are to be used in different threads, all parts of Gecode but the actual search engine do not need to provide concurrency control.