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

Jonathan Wakely <redi at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
          Component|libstdc++                   |c++

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

typedef long unsigned int size_t;

template<typename _Tp, size_t _Nm>
struct array
{
  _Tp _M_elems[_Nm];
};

template<typename _Type, size_t _Extent = -1ul>
struct span
{
  template<typename _Tp, size_t _ArrayExtent>
    constexpr
    span(const array<_Tp, _ArrayExtent>& __arr)
    {
      if (!__arr._M_elems) throw;
    }
};

struct A {
  constexpr A(span<const unsigned char>) {}
};

constexpr A val{array<unsigned char, 2>{0x11, 0x22}};


EDG and Clang both compile this, GCC doesn't.

Reply via email to