Project
Loading...
Searching...
No Matches
StringHelpers.h File Reference
#include <cstdint>
#include <utility>
#include <type_traits>
#include <string_view>

Go to the source code of this file.

Classes

struct  ConstStr< chars >
 
struct  is_const_str< typename >
 
struct  is_const_str< ConstStr< chars... > >
 

Namespaces

namespace  const_str_details
 

Macros

#define CONST_STR(literal)
 

Functions

consteval uint32_t crc32 (char const *str, int length)
 
consteval uint32_t compile_time_hash (char const *str)
 
consteval uint32_t operator""_h (const char *str, size_t)
 
constexpr uint32_t runtime_crc32 (char const *str, int length)
 
constexpr uint32_t runtime_hash (char const *str)
 
template<int N>
consteval uint32_t compile_time_hash_from_literal (const char(&str)[N])
 
template<typename T >
consteval bool is_const_str_v (T)
 
template<char... chars1, char... chars2>
constexpr auto operator+ (const ConstStr< chars1... > &, const ConstStr< chars2... > &)
 
template<typename T , std::size_t... Is>
constexpr auto const_str_details::as_chars_impl (std::index_sequence< Is... >)
 
template<typename T >
constexpr auto const_str_details::as_chars ()
 
template<int N>
constexpr auto const_str_details::get_str (const char(&str)[N])
 
template<int N>
constexpr auto const_str_details::get_size (const char(&str)[N])
 
constexpr auto const_str_details::get_str (const std::string_view &str)
 
constexpr auto const_str_details::get_size (const std::string_view &str)
 

Variables

constexpr uint32_t crc_table [256]
 

Macro Definition Documentation

◆ CONST_STR

#define CONST_STR (   literal)
Value:
[] { \
struct literal_to_chars { \
static constexpr decltype(auto) str() \
{ \
return const_str_details::get_str(literal); \
} \
static constexpr decltype(auto) size() \
{ \
return const_str_details::get_size(literal); \
} \
}; \
return const_str_details::as_chars<literal_to_chars>(); \
}()
GLsizeiptr size
Definition glcorearb.h:659
constexpr auto get_size(const char(&str)[N])
constexpr auto get_str(const char(&str)[N])
const std::string str

Definition at line 170 of file StringHelpers.h.

Function Documentation

◆ compile_time_hash()

consteval uint32_t compile_time_hash ( char const *  str)

Definition at line 75 of file StringHelpers.h.

◆ compile_time_hash_from_literal()

template<int N>
consteval uint32_t compile_time_hash_from_literal ( const char(&)  str[N])

Definition at line 100 of file StringHelpers.h.

◆ crc32()

consteval uint32_t crc32 ( char const *  str,
int  length 
)

Definition at line 66 of file StringHelpers.h.

◆ is_const_str_v()

template<typename T >
consteval bool is_const_str_v ( )

Definition at line 120 of file StringHelpers.h.

◆ operator""_h()

consteval uint32_t operator""_h ( const char str,
size_t   
)

Definition at line 80 of file StringHelpers.h.

◆ operator+()

template<char... chars1, char... chars2>
constexpr auto operator+ ( const ConstStr< chars1... > &  ,
const ConstStr< chars2... > &   
)
constexpr

Definition at line 126 of file StringHelpers.h.

◆ runtime_crc32()

constexpr uint32_t runtime_crc32 ( char const *  str,
int  length 
)
constexpr

Definition at line 85 of file StringHelpers.h.

◆ runtime_hash()

constexpr uint32_t runtime_hash ( char const *  str)
constexpr

Definition at line 94 of file StringHelpers.h.

Variable Documentation

◆ crc_table

constexpr uint32_t crc_table[256]
constexpr

Definition at line 21 of file StringHelpers.h.