view gcc/testsuite/g++.dg/template/pr66850.C @ 158:494b0b89df80 default tip

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 25 May 2020 18:13:55 +0900
parents 04ced10e8804
children
line wrap: on
line source

// PR c++/66850
// Each namespace contains an otherwise standalone test case, none of which
// should cause an ICE.

namespace X {
  template <template <typename U, U> class> struct Sort;

  template <template <typename U, U> class Comparator>
  struct Sort
  {
    template <int I>
    struct less_than
    {
      Comparator<int, I> a;
    };
  };
}

namespace Y {
  template <typename C, C> struct integral_constant {};

  template <typename T, template <typename U, U> class> struct Sort;

  template <template <typename U, U> class Comparator>
  struct Sort<int, Comparator>
  {
      template <int I> struct less_than:
          integral_constant<bool, Comparator<int, I>::value> {};
  };
}

namespace Z {
  template <typename T, template <typename U, U> class> struct Sort;

  template <template <typename U, U> class Comparator>
  struct Sort<int, Comparator>
  {
    template <int I>
    struct less_than
    {
      Comparator<int, I> a;
    };
  };
}