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