13 template <
unsigned Size>
21 for (
unsigned i = 0; i != Size; ++i)
26 for (
unsigned i = 0; i != Size; ++i)
28 if (s[i] >=
'A' && s[i] <=
'Z')
34 constexpr
operator char const*()
const
42 template <
unsigned OtherSize>
50 c1 =
static_cast<unsigned char>(*s1++);
51 c2 =
static_cast<unsigned char>(*s2++);
69 template <
unsigned... Length>
70 constexpr
auto fixConcat(
const char (&... strings)[Length])
72 constexpr
unsigned Count = (... + Length) -
sizeof...(Length);
77 for (
const char* src : {strings...})
79 for (; *src !=
'\0'; ++src, ++dst)
91 for (
unsigned i = 0; i != N; ++i)
101 template <
unsigned N>
Utilitarian class to store and modify strings in compile time.
Definition: fixed_string.hpp:15
constexpr FixedString(char const *s, FixToLowerFlag)
Definition: fixed_string.hpp:24
constexpr FixedString(char const *s)
Definition: fixed_string.hpp:19
char m_buffer[Size+1]
Definition: fixed_string.hpp:61
constexpr static auto m_size
Definition: fixed_string.hpp:60
constexpr int compare(FixedString< OtherSize > const &other) const
glibc strcmp implementation.
Definition: fixed_string.hpp:43
constexpr FixedString()
Definition: fixed_string.hpp:17
Definition: file_dialog.hpp:6
constexpr auto fixConcat(const char(&... strings)[Length])
Allows for compile-time string concatenation.
Definition: fixed_string.hpp:70
FixedString(char const (&)[N]) -> FixedString< N - 1 >
constexpr auto fixToLower(FixedString< N > base)
Definition: fixed_string.hpp:88
Definition: fixed_string.hpp:6