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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org

--- Comment #8 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Slightly adjusted testcase:
template <int N> struct A { static constexpr int c = N; };
template <typename> struct B;
template <typename> struct C;
template <typename T, typename U> struct C<T U::*> : A<B<T>::c> {};
template <typename T, typename... U> struct B<T (U...)> : A<true> {};
template <typename> class D;
struct E { typedef int l; };
template <bool, bool, typename...> struct F;
template <typename T, typename U, typename... V> struct F<false, true, T, U,
V...> : E {};
template <typename T, typename... U> struct G : F<A<false>::c, C<T>::c, U...>
{};
template <typename T, typename... U> struct D<T (U...)> : G<T, U...> {};
struct H { H (const char *); };
struct I { template <long> void foo (); };
struct J { template <long t> auto bar (H) -> typename D<decltype (&I::foo<t>)
(I, H)>::l; };
void
foo ()
{
  J j;
  j.bar<0> ("");
}

Reply via email to