toulbar2
Backtrack management

Used by backtrack search methods. Allows to copy / restore the current state using Store::store and Store::restore methods. All storable data modifications are trailed into specific stacks.

Trailing stacks are associated to each storable type:

Memory for each stack is dynamically allocated by part of $2^x$ with x initialized to ::STORE_SIZE and increased when needed.

Note
storable data are not trailed at depth 0.
Warning
::StoreInt uses Store::storeValue stack (it assumes Value is encoded as int!).
Current storable data management is not multi-threading safe! (Store is a static virtual class relying on StoreBasic<T> static members)