|
Clingo
|
Class managing the lifetime of a Symbol. More...
#include <symbol.hh>
Public Member Functions | |
| constexpr | SharedSymbol () noexcept=default |
| Create a symbol for number zero. | |
| SharedSymbol (Symbol sym, bool acquire=true) noexcept | |
| Take ownership of the symbol. | |
| ~SharedSymbol () | |
| Release ownership of the held symbol. | |
| SharedSymbol (SharedSymbol const &sym) noexcept | |
| Copy constructor. | |
| SharedSymbol (SharedSymbol &&sym) noexcept | |
| Move constructor. | |
| auto | operator= (SharedSymbol const &sym) noexcept -> SharedSymbol & |
| Copy assignment. | |
| auto | operator= (SharedSymbol &&sym) noexcept -> SharedSymbol & |
| Move assignment. | |
| auto | get () const -> Symbol const & |
| Get a reference to the contained symbol. | |
| auto | operator* () const -> Symbol const & |
| Get the contained string reference. | |
| auto | operator-> () const -> Symbol const * |
| Get the contained string reference. | |
| auto | hash () const -> size_t |
| Compute the hash of the symbol. | |
Static Public Member Functions | |
| static auto | to_rep (SharedSymbol const &sym) -> uint64_t |
| Get an integer representation of the symbol. | |
| static auto | from_rep (uint64_t repr) -> SharedSymbol |
| Create a shared symbol from its representation. | |
Friends | |
| auto | compare (SharedSymbol const &a, SharedSymbol const &b) -> int |
| Compare two symbols. | |
| auto | operator== (SharedSymbol const &a, SharedSymbol const &b) -> bool |
| Equality compare two symbols. | |
| auto | operator== (SharedSymbol const &a, Symbol const &b) -> bool |
| Equality compare two symbols. | |
| auto | operator== (Symbol const &a, SharedSymbol const &b) -> bool |
| Equality compare two symbols. | |
| auto | operator<=> (SharedSymbol const &a, SharedSymbol const &b) -> std::strong_ordering |
| Less than compare two symbols. | |
| auto | operator<=> (SharedSymbol const &a, Symbol const &b) -> std::strong_ordering |
| Less than compare two symbols. | |
| auto | operator<=> (Symbol const &a, SharedSymbol const &b) -> std::strong_ordering |
| Less than compare two symbols. | |
Class managing the lifetime of a Symbol.
References held by this class are not collected by the gc method of the symbol store.
|
constexprdefaultnoexcept |
Create a symbol for number zero.
Number zero can exist independently of a symbol store.
|
inlinestatic |
Create a shared symbol from its representation.
No reference counts are touched here.
|
inline |
Get a reference to the contained symbol.
The lifetime is tied to the symbol.
|
inlinestatic |
Get an integer representation of the symbol.
The representation increments the reference count of the symbol. To correctly free the symbol, it has to passed to from_rep again.