|
header_utils
|
The default symbol provider usable for most symbol implementations. More...
#include <symbol.h>
Public Types | |
| using | internal_value_type |
| using | hash_type |
Public Member Functions | |
| void | clear () noexcept |
| size_t | size () const noexcept |
| size_t | count () const noexcept |
| auto const & | values () const noexcept |
| auto | empty_string () const noexcept |
Static Public Member Functions | |
| static default_symbol_provider_t & | instance () noexcept |
| static internal_value_type | empty_value () noexcept |
| static internal_value_type | insert (std::string_view val) |
| static std::string_view | string_for (internal_value_type val) noexcept |
| static hash_type | hash_for (internal_value_type val) noexcept |
| static std::strong_ordering | compare (internal_value_type a, internal_value_type b) noexcept |
Protected Member Functions | |
| default_symbol_provider_t (default_symbol_provider_t const &)=delete | |
| default_symbol_provider_t & | operator= (default_symbol_provider_t const &)=delete |
Protected Attributes | |
| std::set< std::string, std::less<> > | m_values |
| std::string const * | m_empty_string |
The default symbol provider usable for most symbol implementations.
NOT THREAD SAFE. Uses a TAG type parameter if you want to create different "namespaces" of symbols.
This class can be easily made thread-safe, just wrap all operations that touch m_values in a mutex (specifically insert and clear).
| using ghassanpl::default_symbol_provider_t< TAG >::hash_type |
| using ghassanpl::default_symbol_provider_t< TAG >::internal_value_type |
|
inlinenoexcept |
|
inlinestaticnodiscardnoexcept |
|
inlinenodiscardnoexcept |
|
inlinenodiscardnoexcept |
|
inlinestaticnodiscardnoexcept |
|
inlinestaticnodiscardnoexcept |
|
inlinestaticnodiscard |
|
inlinestaticnoexcept |
|
inlinenodiscardnoexcept |
|
inlinestaticnodiscardnoexcept |
|
inlinenodiscardnoexcept |
|
protected |
|
protected |