blob: 436f4fdfe1121a25de8bf1f71e5fd87d31cc9a4d [file] [log] [blame]
// Example from P0732.
// { dg-do compile { target c++20 } }
namespace std {
using size_t = decltype(sizeof(1));
template <typename CharT, std::size_t N>
struct basic_fixed_string
{
constexpr basic_fixed_string(const CharT (&foo)[N+1])
: m_data()
{
for (int i = 0; i <= N; ++i)
m_data[i] = foo[i];
}
// auto operator<=>(const basic_fixed_string &) = default;
CharT m_data[N+1];
};
template <typename CharT, std::size_t N>
basic_fixed_string(const CharT (&str)[N])->basic_fixed_string<CharT, N-1>;
template <std::size_t N>
using fixed_string = basic_fixed_string<char, N>;
}
template <std::basic_fixed_string Str>
struct A {};
using hello_A = A<"hello">;