Clingo
|
Data structures and functions to represent symbols. More...
Classes | |
class | CppClingo::String |
Reference to a string stored in a symbol store. More... | |
class | CppClingo::SharedString |
Class managing the lifetime of a String. More... | |
class | CppClingo::Symbol |
Variant-like class to store symbols stored in a symbol store. More... | |
class | CppClingo::SharedSymbol |
Class managing the lifetime of a Symbol. More... | |
class | CppClingo::SymbolCollector |
Helper class to mark owned symbols. More... | |
class | CppClingo::SymbolOwner |
Interface for classes owning references to symbols. More... | |
class | CppClingo::SymbolStore |
A store for symbols. More... | |
class | CppClingo::GCLock |
Helper to block garbage collection. More... | |
class | CppClingo::NameGen |
Generator for auxiliary names. More... | |
Typedefs | |
using | CppClingo::StringSet = Util::unordered_set< String > |
A set of strings. | |
using | CppClingo::StringVec = std::vector< String > |
A vector of strings. | |
using | CppClingo::StringSpan = std::span< String const > |
A span of strings. | |
using | CppClingo::SharedStringSet = Util::unordered_set< SharedString > |
A set of strings. | |
using | CppClingo::SharedStringVec = std::vector< SharedString > |
A vector of strings. | |
using | CppClingo::SharedStringArray = Util::immutable_array< SharedString > |
An array of strings. | |
using | CppClingo::SharedStringSpan = std::span< SharedString const > |
A vector of strings. | |
using | CppClingo::SymbolSpan = std::span< Symbol const > |
A span of symbols. | |
using | CppClingo::SymbolVec = std::vector< Symbol > |
A vector of symbols. | |
using | CppClingo::Assignment = std::vector< std::optional< Symbol > > |
Assignment mapping variables to symbols. | |
using | CppClingo::SharedSymbolSpan = std::span< SharedSymbol const > |
A span of symbols. | |
using | CppClingo::SharedSymbolVec = std::vector< SharedSymbol > |
A vector of symbols. | |
using | CppClingo::USymbolStore = std::unique_ptr< SymbolStore > |
A pointer to a symbol store. | |
Enumerations | |
enum class | CppClingo::SymbolType : uint8_t { number , sup , inf , string , tuple , function } |
Enumeration of available symbols types. More... | |
Functions | |
auto | CppClingo::as_string_ptr (SharedString const *ptr) -> String const * |
Convert a shared string pointer into a string pointer. | |
template<class T > | |
auto | CppClingo::as_string_span (T const &vec) -> StringSpan |
Convert a collection of shared strings into a string span. | |
auto | CppClingo::as_shared_string_ptr (String const *ptr) -> SharedString const * |
Convert a string pointer into a shared string pointer. | |
template<class T > | |
auto | CppClingo::as_shared_string_span (T const &vec) -> SharedStringSpan |
Convert a collection of strings into a shared string span. | |
auto | CppClingo::as_symbol_ptr (SharedSymbol const *ptr) -> Symbol const * |
Convert a shared symbol pointer into a symbol pointer. | |
template<class T > | |
auto | CppClingo::as_symbol_span (T const &vec) -> SymbolSpan |
Convert a shared symbol collection into a symbol span. | |
auto | CppClingo::as_shared_symbol_ptr (Symbol const *ptr) -> SharedSymbol const * |
Convert a symbol pointer into a shared symbol pointer. | |
template<class T > | |
auto | CppClingo::as_shared_symbol_span (T const &vec) -> SharedSymbolSpan |
Convert a symbol collection into a shared symbol span. | |
void | CppClingo::init_default_symbol_store (USymbolStore store) |
Initialize the default symbol store. | |
auto | CppClingo::default_symbol_store () -> SymbolStore & |
Get the default symbol store. | |
auto | CppClingo::make_symbol_store (bool slotted, bool shared) -> USymbolStore |
Construct a new symbol store. | |
Data structures and functions to represent symbols.
|
strong |
Enumeration of available symbols types.
See the documentation of the corresponding functions in the SymbolStore.
auto CppClingo::default_symbol_store | ( | ) | -> SymbolStore & |
Get the default symbol store.
If no symbol store has been set, a default one that is not thread-safe is set up and returned.
void CppClingo::init_default_symbol_store | ( | USymbolStore | store | ) |
Initialize the default symbol store.
Fails if there is already a default one.
auto CppClingo::make_symbol_store | ( | bool | slotted, |
bool | shared | ||
) | -> USymbolStore |
Construct a new symbol store.
Optionally, a slotted allocator can be used to (hopefully) speed up allocation.
Either a default store for single-threaded use or a locked one for multi-threaded use can be created.