5#ifndef V8_BASE_TEMPLATE_META_PROGRAMMING_STRING_LITERAL_H_
6#define V8_BASE_TEMPLATE_META_PROGRAMMING_STRING_LITERAL_H_
15#ifdef HAS_CPP_CLASS_TYPES_AS_TEMPLATE_ARGS
17#ifdef __cpp_lib_to_array
21template <
typename T,
size_t N,
size_t...
I>
22constexpr std::array<std::remove_cv_t<T>,
N> to_array_impl(
23 T (&a)[N], std::index_sequence<I...>) {
27template <
typename T,
size_t N>
28constexpr std::array<std::remove_cv_t<T>,
N>
to_array(T (&a)[N]) {
29 return detail::to_array_impl(a, std::make_index_sequence<N>{});
38 constexpr StringLiteral(
const char (&s)[N])
50 const char* c_str()
const {
return data_.data(); }
53 const std::array<char, N>
data_;
58StringLiteral(
const char (&)[N]) -> StringLiteral<N>;
uint8_t data_[MAX_STACK_LENGTH]
constexpr std::array< std::remove_cv_t< T >, N > to_array(T(&a)[N])
#define I(name, number_of_args, result_size)
#define DCHECK_EQ(v1, v2)