view gcc/testsuite/g++.dg/cpp2a/typename7.C @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents
children
line wrap: on
line source

// P0634R3
// { dg-do compile { target c++2a } }

// Not in namespace scope.
template<typename T>
void fn1 ()
{
  // init-statement -> simple-declaration
  if (T::X r = 0; 0) // { dg-error "need .typename.|expected" }
    ;

  for (T::X g = 0; ;) // { dg-error "need .typename.|expected" }
    ;
}

template<typename T>
void
fn2 ()
{
  T::X fn3 (); // { dg-error "need .typename.|expected" }
  T::X v1; // { dg-error "need .typename.|expected" }
  T::X v2 = 0; // { dg-error "need .typename.|expected" }
  T::X v3{0}; // { dg-error "need .typename.|expected" }
  static constexpr T::X v4 = 0; // { dg-error "need .typename." }
  typedef T::X T2; // { dg-error "need .typename." }
}