https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96873
Bug ID: 96873 Summary: Internal compiler error in alias_ctad_tweaks Product: gcc Version: 11.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: mateusz.pusz at gmail dot com Target Milestone: --- #include <cstdint> template<typename CharT, std::size_t N> struct basic_fixed_string { CharT data_[N + 1] = {}; constexpr basic_fixed_string(CharT ch) noexcept { data_[0] = ch; } constexpr basic_fixed_string(const CharT (&txt)[N + 1]) noexcept { if constexpr (N != 0) for (std::size_t i = 0; i < N; ++i) data_[i] = txt[i]; } }; template<typename CharT, std::size_t N> basic_fixed_string(const CharT (&str)[N]) -> basic_fixed_string<CharT, N - 1>; template<typename CharT> basic_fixed_string(CharT) -> basic_fixed_string<CharT, 1>; template<std::size_t N> using fixed_string = basic_fixed_string<char, N>; template<fixed_string> struct X {}; X<"txt"> x;