view gcc/testsuite/g++.dg/template/pr66850.C @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
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;
    };
  };
}