// { dg-do compile { target c++20 } } // PR libstdc++/112607 // _Normalize does not consider char_type for the basic_string_view case #include template struct Alloc { using value_type = T; Alloc() = default; template Alloc(const Alloc&) { } T* allocate(std::size_t); void deallocate(T*, std::size_t); bool operator==(const Alloc&) const; }; template using String = std::basic_string, Alloc>; template<> struct std::formatter> : std::formatter { auto format(const String&, auto& ctx) const { return std::formatter::format(" ", ctx); } }; std::string str = std::format("{}", String{});