8 struct FixedStringConcat;
11template<types::
size_t count>
23 constexpr auto data() const ->
char const* {
return m_data; }
26 constexpr auto begin() const ->
char const* {
return m_data; }
29 template<types::
size_t other_size>
30 requires(
count != other_size)
38 friend struct detail::FixedStringConcat;
41template<types::
size_t size>
45 struct FixedStringConcat {
47 template<
size_t s0,
size_t s1>
50 for (
size_t i = 0; i < s0; i++) {
51 result.m_data[i] = a.
m_data[i];
53 for (
size_t i = 0; i < s1; i++) {
54 result.m_data[s0 + i] = b.
m_data[i];
60 template<
size_t sz0,
size_t... sz>
63 return h(s0, FixedStringConcat::operator()(strs...));
66 constexpr static auto operator()() ->
FixedString<0> {
return { {} }; }
Definition fixed_string.h:12
constexpr auto data() const -> char const *
Definition fixed_string.h:23
constexpr FixedString(char const (&data)[count+1])
Definition fixed_string.h:16
auto operator<=>(FixedString const &) const =default
auto operator==(FixedString const &) const -> bool=default
constexpr auto end() const -> char const *
Definition fixed_string.h:27
static constexpr auto size()
Definition fixed_string.h:24
char m_data[count+1]
Definition fixed_string.h:14
constexpr auto begin() const -> char const *
Definition fixed_string.h:26
constexpr auto fixed_string_concat
Definition fixed_string.h:70
FixedString(char const (&)[size]) -> FixedString< size - 1 >
constexpr auto size
Definition size.h:62
constexpr auto count
Definition count.h:37
std::size_t size_t
Definition size_t.h:12
Definition any_storable.h:9