summaryrefslogtreecommitdiff
path: root/clang/test/CXX/temp/temp.param/p15-cxx0x.cpp
blob: 5fc57a43f5417207711a59be770638eaecb9b5bd (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// RUN: %clang_cc1 -fsyntax-only -std=c++11 -verify %s
template<typename T> struct X;
template<int I> struct Y;

X<X<int>> *x1;

Y<(1 >> 2)> *y1;
Y<1 >> 2> *y2; // FIXME: expected-error{{expected unqualified-id}}

X<X<X<X<X<int>>>>> *x2;

template<> struct X<int> { };
typedef X<int> X_int;
struct Z : X_int { };

void f(const X<int> x) {
  (void)reinterpret_cast<X<int>>(x); // expected-error{{reinterpret_cast from}}
  (void)reinterpret_cast<X<X<X<int>>>>(x); // expected-error{{reinterpret_cast from}}

  X<X<int>> *x1;
}

template<typename T = void> struct X1 { };
X1<X1<>> x1a;