EnTT 3.13.0
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Static Public Member Functions | List of all members
entt::basic_hashed_string< Char > Class Template Reference

Zero overhead unique identifier. More...

#include <hashed_string.hpp>

Inheritance diagram for entt::basic_hashed_string< Char >:
Inheritance graph
[legend]
Collaboration diagram for entt::basic_hashed_string< Char >:
Collaboration graph
[legend]

Public Types

using value_type = typename base_type::value_type
 Character type.
 
using size_type = typename base_type::size_type
 Unsigned integer type.
 
using hash_type = typename base_type::hash_type
 Unsigned integer type.
 

Public Member Functions

constexpr basic_hashed_string () noexcept
 Constructs an empty hashed string.
 
constexpr basic_hashed_string (const value_type *str, const size_type len) noexcept
 Constructs a hashed string from a string view.
 
template<std::size_t N>
constexpr basic_hashed_string (const value_type(&str)[N]) noexcept
 Constructs a hashed string from an array of const characters.
 
constexpr basic_hashed_string (const_wrapper wrapper) noexcept
 Explicit constructor on purpose to avoid constructing a hashed string directly from a const value_type *.
 
constexpr size_type size () const noexcept
 Returns the size a hashed string.
 
constexpr const value_typedata () const noexcept
 Returns the human-readable representation of a hashed string.
 
constexpr hash_type value () const noexcept
 Returns the numeric representation of a hashed string.
 
constexpr operator const value_type * () const noexcept
 Returns the human-readable representation of a hashed string.
 
constexpr operator hash_type () const noexcept
 Returns the numeric representation of a hashed string.
 

Static Public Member Functions

static constexpr hash_type value (const value_type *str, const size_type len) noexcept
 Returns directly the numeric representation of a string view.
 
template<std::size_t N>
static constexpr hash_type value (const value_type(&str)[N]) noexcept
 Returns directly the numeric representation of a string.
 
static constexpr hash_type value (const_wrapper wrapper) noexcept
 Returns directly the numeric representation of a string.
 

Detailed Description

template<typename Char>
class entt::basic_hashed_string< Char >

Zero overhead unique identifier.

A hashed string is a compile-time tool that allows users to use human-readable identifiers in the codebase while using their numeric counterparts at runtime.
Because of that, a hashed string can also be used in constant expressions if required.

Warning
This class doesn't take ownership of user-supplied strings nor does it make a copy of them.
Template Parameters
CharCharacter type.

Definition at line 60 of file hashed_string.hpp.

Member Typedef Documentation

◆ hash_type

template<typename Char >
using entt::basic_hashed_string< Char >::hash_type = typename base_type::hash_type

Unsigned integer type.

Definition at line 100 of file hashed_string.hpp.

◆ size_type

template<typename Char >
using entt::basic_hashed_string< Char >::size_type = typename base_type::size_type

Unsigned integer type.

Definition at line 98 of file hashed_string.hpp.

◆ value_type

template<typename Char >
using entt::basic_hashed_string< Char >::value_type = typename base_type::value_type

Character type.

Definition at line 96 of file hashed_string.hpp.

Constructor & Destructor Documentation

◆ basic_hashed_string() [1/4]

template<typename Char >
constexpr entt::basic_hashed_string< Char >::basic_hashed_string ( )
inlineconstexprnoexcept

Constructs an empty hashed string.

Definition at line 133 of file hashed_string.hpp.

◆ basic_hashed_string() [2/4]

template<typename Char >
constexpr entt::basic_hashed_string< Char >::basic_hashed_string ( const value_type str,
const size_type  len 
)
inlineconstexprnoexcept

Constructs a hashed string from a string view.

Parameters
strHuman-readable identifier.
lenLength of the string to hash.

Definition at line 141 of file hashed_string.hpp.

◆ basic_hashed_string() [3/4]

template<typename Char >
template<std::size_t N>
constexpr entt::basic_hashed_string< Char >::basic_hashed_string ( const value_type(&)  str[N])
inlineconstexprnoexcept

Constructs a hashed string from an array of const characters.

Template Parameters
NNumber of characters of the identifier.
Parameters
strHuman-readable identifier.

Definition at line 150 of file hashed_string.hpp.

◆ basic_hashed_string() [4/4]

template<typename Char >
constexpr entt::basic_hashed_string< Char >::basic_hashed_string ( const_wrapper  wrapper)
inlineexplicitconstexprnoexcept

Explicit constructor on purpose to avoid constructing a hashed string directly from a const value_type *.

Warning
The lifetime of the string is not extended nor is it copied.
Parameters
wrapperHelps achieving the purpose by relying on overloading.

Definition at line 162 of file hashed_string.hpp.

Member Function Documentation

◆ data()

template<typename Char >
constexpr const value_type * entt::basic_hashed_string< Char >::data ( ) const
inlineconstexprnoexcept

Returns the human-readable representation of a hashed string.

Returns
The string used to initialize the hashed string.

Definition at line 177 of file hashed_string.hpp.

◆ operator const value_type *()

template<typename Char >
constexpr entt::basic_hashed_string< Char >::operator const value_type * ( ) const
inlineconstexprnoexcept

Returns the human-readable representation of a hashed string.

Returns
The string used to initialize the hashed string.

Definition at line 190 of file hashed_string.hpp.

◆ operator hash_type()

template<typename Char >
constexpr entt::basic_hashed_string< Char >::operator hash_type ( ) const
inlineconstexprnoexcept

Returns the numeric representation of a hashed string.

Returns
The numeric representation of the hashed string.

Definition at line 198 of file hashed_string.hpp.

◆ size()

template<typename Char >
constexpr size_type entt::basic_hashed_string< Char >::size ( ) const
inlineconstexprnoexcept

Returns the size a hashed string.

Returns
The size of the hashed string.

Definition at line 169 of file hashed_string.hpp.

◆ value() [1/4]

template<typename Char >
constexpr hash_type entt::basic_hashed_string< Char >::value ( ) const
inlineconstexprnoexcept

Returns the numeric representation of a hashed string.

Returns
The numeric representation of the hashed string.

Definition at line 185 of file hashed_string.hpp.

◆ value() [2/4]

template<typename Char >
static constexpr hash_type entt::basic_hashed_string< Char >::value ( const value_type str,
const size_type  len 
)
inlinestaticconstexprnoexcept

Returns directly the numeric representation of a string view.

Parameters
strHuman-readable identifier.
lenLength of the string to hash.
Returns
The numeric representation of the string.

Definition at line 108 of file hashed_string.hpp.

◆ value() [3/4]

template<typename Char >
template<std::size_t N>
static constexpr hash_type entt::basic_hashed_string< Char >::value ( const value_type(&)  str[N])
inlinestaticconstexprnoexcept

Returns directly the numeric representation of a string.

Template Parameters
NNumber of characters of the identifier.
Parameters
strHuman-readable identifier.
Returns
The numeric representation of the string.

Definition at line 119 of file hashed_string.hpp.

◆ value() [4/4]

template<typename Char >
static constexpr hash_type entt::basic_hashed_string< Char >::value ( const_wrapper  wrapper)
inlinestaticconstexprnoexcept

Returns directly the numeric representation of a string.

Parameters
wrapperHelps achieving the purpose by relying on overloading.
Returns
The numeric representation of the string.

Definition at line 128 of file hashed_string.hpp.


The documentation for this class was generated from the following file: