gw
1.0.0
A bunch of small C++ utilities
|
GW namespace. More...
Classes | |
class | basic_inplace_string |
A fixed-size string that stores the data in-place. More... | |
struct | crtp |
CRTP base class. More... | |
class | named_type |
Named type wrapper. More... | |
class | strong_type |
Strong type wrapper. More... | |
Concepts | |
concept | arithmetic |
Concept for arithmetic types. | |
concept | incrementable |
Concept for incrementable types. | |
concept | decrementable |
Concept for decrementable types. | |
concept | complete |
Concept for complete types. | |
concept | hashable |
Concept for hashable types. | |
concept | ostreamable |
Concept for ostreamable types. | |
concept | istreamable |
Concept for istreamable types. | |
concept | named |
Concept for named types. | |
Typedefs | |
template<std::size_t N> | |
using | inplace_string = basic_inplace_string< N, char > |
A fixed-size string of char that stores the data in-place. | |
template<std::size_t N> | |
using | inplace_wstring = basic_inplace_string< N, wchar_t > |
A fixed-size string of wchar_t that stores the data in-place. | |
template<std::size_t N> | |
using | inplace_u16string = basic_inplace_string< N, char16_t > |
A fixed-size string of char16_t that stores the data in-place. | |
template<std::size_t N> | |
using | inplace_u32string = basic_inplace_string< N, char32_t > |
A fixed-size string of char32_t that stores the data in-place. | |
Functions | |
template<typename CharT , std::size_t N> | |
basic_inplace_string (const CharT(&)[N]) -> basic_inplace_string< N - 1U, CharT > | |
Deduction guide for basic_inplace_string. | |
template<basic_inplace_string Name, typename T , typename... Args> requires std::constructible_from<std::remove_cvref_t<T>, Args...> | |
constexpr auto | make_named_type (Args &&... args) noexcept(std::is_nothrow_constructible_v< T, Args... >) |
Create a gw::named_type object. | |
template<basic_inplace_string Name, typename T , typename U , typename... Args> requires std::constructible_from<T, std::initializer_list<U>&, Args...> | |
constexpr auto | make_named_type (std::initializer_list< U > ilist, Args &&... args) noexcept(std::is_nothrow_constructible_v< T, std::initializer_list< U > &, Args... >) |
Create a gw::named_type object. | |
template<basic_inplace_string Name, typename T > requires std::constructible_from<std::remove_cvref_t<T>, T> | |
constexpr auto | make_named_type (T &&value) noexcept(std::is_nothrow_constructible_v< named_type< std::remove_cvref_t< T >, Name >, T >) |
Create a gw::named_type object. | |
template<typename Tag , typename T , typename... Args> requires std::constructible_from<std::remove_cvref_t<T>, Args...> | |
constexpr auto | make_strong_type (Args &&... args) noexcept(std::is_nothrow_constructible_v< T, Args... >) |
creates a gw::strong_type object | |
template<typename Tag , typename T , typename U , typename... Args> requires std::constructible_from<T, std::initializer_list<U>&, Args...> | |
constexpr auto | make_strong_type (std::initializer_list< U > ilist, Args &&... args) noexcept(std::is_nothrow_constructible_v< T, std::initializer_list< U > &, Args... >) |
creates a gw::strong_type object | |
template<typename Tag , typename T > requires std::constructible_from<std::remove_cvref_t<T>, T> | |
constexpr auto | make_strong_type (T &&value) noexcept(std::is_nothrow_constructible_v< strong_type< std::remove_cvref_t< T >, Tag >, T >) |
creates a gw::strong_type object | |
GW namespace.