Clingo
|
Class managing the lifetime of a String. More...
#include <symbol.hh>
Public Member Functions | |
constexpr | SharedString ()=default |
Construct an empty string. | |
SharedString (String ref, bool acquire=true) noexcept | |
Take ownership of the string reference. | |
~SharedString () | |
Release ownership of the held string reference. | |
SharedString (SharedString const &other) noexcept | |
Copy constructor. | |
SharedString (SharedString &&other) noexcept | |
Move constructor. | |
auto | operator= (SharedString const &other) noexcept -> SharedString & |
Copy assignment. | |
auto | operator= (SharedString &&other) noexcept -> SharedString & |
Move assignment. | |
auto | get () const -> String const & |
Get the contained string reference. | |
auto | operator* () const -> String const & |
Get the contained string reference. | |
auto | operator-> () const -> String const * |
Get the contained string reference. | |
auto | hash () const -> size_t |
Compute the hash of the string. | |
Static Public Member Functions | |
static auto | to_rep (SharedString sym) -> uint64_t |
Get an integer representation of the string. | |
static auto | from_rep (uint64_t repr) -> SharedString |
Construct a string from its representation. | |
Friends | |
auto | operator== (SharedString const &a, SharedString const &b) -> bool |
Equality compare two strings. | |
auto | operator== (SharedString const &a, String const &b) -> bool |
Equality compare two strings. | |
auto | operator== (String const &a, SharedString const &b) -> bool |
Equality compare two strings. | |
auto | operator== (std::string_view a, SharedString const &b) -> bool |
Equality compare two strings. | |
auto | operator== (SharedString const &a, std::string_view b) -> bool |
Equality compare two strings. | |
auto | operator<=> (SharedString const &a, SharedString const &b) -> std::strong_ordering |
Compare two strings. | |
auto | operator<=> (SharedString const &a, String const &b) -> std::strong_ordering |
Compare two strings. | |
auto | operator<=> (String const &a, SharedString const &b) -> std::strong_ordering |
Compare two strings. | |
auto | operator<=> (std::string_view a, SharedString const &b) -> std::strong_ordering |
Equality compare two strings. | |
auto | operator<=> (SharedString const &a, std::string_view b) -> std::strong_ordering |
Equality compare two strings. | |
Class managing the lifetime of a String.
References held by this class are not collected by the gc method of the symbol store.
|
inlinestatic |
Get an integer representation of the string.
To correctly free the string, it has to passed to from_rep again.