https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108096

--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Reduced:

#include <initializer_list>

template<bool> struct enable_if { };
template<> struct enable_if<true> { using type = void; };

template<typename T> constexpr bool is_array_v = false;
template<typename T, std::size_t N> constexpr bool is_array_v<T[N]> = true;

struct OUString
{
  template<typename T, typename = typename enable_if<is_array_v<T>>::type>
  OUString(T&) { }
};

struct vector
{
  vector(std::initializer_list<OUString>) { }
  template<typename Iter>
  vector(Iter i, Iter j) { if (i != j) OUString(*i); }
};

vector v = { "" };

Reply via email to