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

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)
 
template<typename... Ts>
requires (std::same_as<Ts, std::string_view> && ...)
consteval uint32_t crc32 (Ts... Vs)
 
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 183 of file StringHelpers.h.

Function Documentation

◆ compile_time_hash()

consteval uint32_t compile_time_hash ( char const *  str)

Definition at line 88 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 113 of file StringHelpers.h.

◆ crc32() [1/2]

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

Definition at line 68 of file StringHelpers.h.

◆ crc32() [2/2]

template<typename... Ts>
requires (std::same_as<Ts, std::string_view> && ...)
consteval uint32_t crc32 ( Ts...  Vs)

Definition at line 79 of file StringHelpers.h.

◆ is_const_str_v()

template<typename T >
consteval bool is_const_str_v ( )

Definition at line 133 of file StringHelpers.h.

◆ operator""_h()

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

Definition at line 93 of file StringHelpers.h.

◆ operator+()

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

Definition at line 139 of file StringHelpers.h.

◆ runtime_crc32()

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

Definition at line 98 of file StringHelpers.h.

◆ runtime_hash()

constexpr uint32_t runtime_hash ( char const *  str)
constexpr

Definition at line 107 of file StringHelpers.h.

Variable Documentation

◆ crc_table

constexpr uint32_t crc_table[256]
constexpr

Definition at line 23 of file StringHelpers.h.