4#ifndef TETL_STRING_STRING_CONSTANT_HPP
5#define TETL_STRING_STRING_CONSTANT_HPP
7#include <etl/_array/array.hpp>
8#include <etl/_cstddef/size_t.hpp>
9#include <etl/_iterator/size.hpp>
10#include <etl/_string_view/basic_string_view.hpp>
11#include <etl/_utility/index_sequence.hpp>
15template <
typename CharT, CharT... Chars>
17 using value_type = CharT;
22 static constexpr auto size()
noexcept
27 static constexpr auto begin()
noexcept
32 static constexpr auto end()
noexcept
43template <
typename CharT, CharT... Chars>
44[[nodiscard]]
constexpr auto
50template <
typename CharT, CharT... CharsL, CharT... CharsR>
51[[nodiscard]]
constexpr auto
59template <
auto CharArray>
60 requires(
etl::size(CharArray) > 0)
61consteval auto to_string_constant()
63 return []<etl::size_t... Is>(
etl::index_sequence<Is...> ) {
65 }(
etl::make_index_sequence<
etl::size(CharArray) - 1>{});
72#define TETL_STRING_C(str) etl::detail::to_string_constant<etl::to_array(str)>()
Definition adjacent_find.hpp:9
constexpr auto operator==(string_constant< CharT, CharsL... >, string_constant< CharT, CharsR... >) noexcept -> bool
Definition string_constant.hpp:52
constexpr auto operator==(string_constant< CharT, Chars... >, string_constant< CharT, Chars... >) noexcept -> bool
Definition string_constant.hpp:45
A container that encapsulates fixed size arrays.
Definition array.hpp:49
The class template basic_string_view describes an object that can refer to a constant contiguous sequ...
Definition basic_string_view.hpp:35
Definition string_constant.hpp:16
static constexpr auto begin() noexcept
Definition string_constant.hpp:27
constexpr operator string_view_type() const noexcept
Definition string_constant.hpp:37
static constexpr auto end() noexcept
Definition string_constant.hpp:32
static constexpr auto storage
Definition string_constant.hpp:20
static constexpr auto size() noexcept
Definition string_constant.hpp:22