|
Clingo
|
Variant-like class to store symbols stored in a symbol store. More...
#include <symbol.hh>
Public Member Functions | |
| constexpr | Symbol ()=default |
| Create a reference to number zero. | |
| auto | type () const noexcept -> SymbolType |
| Get the type of the symbol. | |
| auto | num () const noexcept -> Number const & |
| Get the numeric value of the symbol. | |
| auto | str () const noexcept -> String |
| Get the (raw) string value of the symbol. | |
| auto | name () const noexcept -> String |
| Get the name of the symbol. | |
| auto | args () const noexcept -> SymbolSpan |
| Get the arguments of the symbol. | |
| auto | flip_classical_sign () const -> std::optional< Symbol > |
| Flip the classical sign of the symbol. | |
| auto | has_sign () const -> bool |
| Check whether the symbol has a sign. | |
| auto | has_classical_sign () const -> bool |
| Check whether the symbol has a sign. | |
| auto | hash () const -> size_t |
| Compute the hash of the symbol. | |
| auto | signature () const -> std::optional< std::tuple< String, size_t, bool > > |
| Get the signature of the symbol. | |
| void | acquire () const noexcept |
| Manually increment the reference count of the symbol. | |
| void | release () const noexcept |
| Manually decrement the reference count of the symbol. | |
Static Public Member Functions | |
| static auto | to_rep (Symbol sym) noexcept -> uint64_t |
| Get the representation of the symbol. | |
| static auto | from_rep (uint64_t rep) noexcept -> Symbol |
| Create a symbol from its representation. | |
Friends | |
| auto | compare (Symbol const &a, Symbol const &b) -> int |
| Compare two symbols. | |
| auto | compare (Number const &a, Symbol const &b) -> int |
| Compare two symbols. | |
| auto | compare (Symbol const &a, Number const &b) -> int |
| Compare two symbols. | |
| auto | operator== (Symbol const &a, Symbol const &b) -> bool |
| Equality compare two symbols. | |
| auto | operator== (Number const &a, Symbol const &b) -> bool |
| Equality compare numbers and symbols. | |
| auto | operator== (Symbol const &a, Number const &b) -> bool |
| Equality compare numbers and symbols. | |
| auto | operator<=> (Symbol const &a, Symbol const &b) -> std::strong_ordering |
| Compare two symbols. | |
| auto | operator<=> (Number const &a, Symbol const &b) -> std::strong_ordering |
| Compare symbols and numbers. | |
| auto | operator<=> (Symbol const &a, Number const &b) -> std::strong_ordering |
| Compare symbols and numbers. | |
| auto | operator<< (std::ostream &out, Symbol const &sym) -> std::ostream & |
| Output the given symbol. | |
| auto | operator<< (Util::OutputBuffer &out, Symbol const &sym) -> Util::OutputBuffer & |
| Output the symbol to the given buffer. | |
Variant-like class to store symbols stored in a symbol store.
|
constexprdefault |
Create a reference to number zero.
Number zero can exist independently of a symbol store.
| auto CppClingo::Symbol::has_classical_sign | ( | ) | const -> bool |
Check whether the symbol has a sign.
Returns true for negated functions.
| auto CppClingo::Symbol::has_sign | ( | ) | const -> bool |
Check whether the symbol has a sign.
Returns true for negative integers and negated functions.
| auto CppClingo::Symbol::signature | ( | ) | const -> std::optional< std::tuple< String, size_t, bool > > |
Get the signature of the symbol.
Returns std::nullopt if the symbol is not a function.