p4-cxx0x.cpp revision 60a9a2a404a4cf259d39133383e922aa00ca9043
1// RUN: clang-cc -fsyntax-only -std=c++0x -verify %s
2
3template<typename T, typename U>
4struct is_same {
5  static const bool value = false;
6};
7
8template<typename T>
9struct is_same<T, T> {
10  static const bool value = true;
11};
12
13const int&& foo();
14int i;
15struct A { double x; };
16const A* a = new A();
17
18static_assert(is_same<decltype(foo()), const int&&>::value, "");
19static_assert(is_same<decltype(i), int>::value, "");
20static_assert(is_same<decltype(a->x), double>::value, "");
21static_assert(is_same<decltype((a->x)), const double&>::value, "");
22