view gcc/testsuite/g++.dg/cpp2a/nontype-class28.C @ 158:494b0b89df80 default tip

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

// PR c++/92948 - Fix class NTTP with template arguments.
// { dg-do compile { target c++2a } }

struct A {
  constexpr A(int) { }
};

template<A>
struct B {
  using U = unsigned;
};

template<A a>
using U = B<a>;

template<int X, typename Y = typename B<X>::U>
void foo()
{
}

template<int X, typename Y = typename U<X>::U>
void foo2()
{
}

template<typename Y = typename B<1>::U>
void foo3()
{
}

void
g ()
{
  foo<1>();
  foo2<1>();
  foo3<>();
}