blob: 2354fafcfa0e3c4e12cd6c5b97677d8bbd335d62 [file] [log] [blame]
// P0634R3
// { dg-do compile { target c++20 } }
// 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." }
}