view gcc/testsuite/g++.dg/template/typedef34.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

// Origin PR c++/45200
// { dg-do compile }

template<typename T>
struct remove_reference
{
  typedef T type;
};

template<typename TestType>
struct forward_as_lref
{
};

template<typename Seq, typename N>
struct apply1
{
  typedef typename remove_reference<Seq>::type seq;
  typedef forward_as_lref<typename seq::seq_type> type; //#0
};

template<typename Seq>
struct apply
{
  typedef forward_as_lref<typename remove_reference<Seq>::type::seq_type> type; //#1
};

struct reverse_view
{
  typedef int seq_type;
};

int
main()
{
  apply<reverse_view >::type a2;
}