PR c++/85553
[official-gcc.git] / gcc / testsuite / g++.dg / cpp0x / decltype19.C
blob41d602f34eb49dca7eceb7835dbf3448b1790e0d
1 // PR c++/42013
3 template<typename _Tp>
4   _Tp
5 __attribute ((const)) declval();
7 template<typename _Tp, typename _Up>
8   struct common_type
9   {
10     typedef __decltype(true  ? declval<_Tp>() : declval<_Up>()) typet;
11     typedef __decltype(false ? declval<_Tp>() : declval<_Up>()) typef;
12   };
14 template<typename, typename> struct is_same;
16 template<typename _Tp> struct is_same<_Tp, _Tp> { typedef _Tp type; };
18 void f()
20   typedef common_type<int, const int>::typet typet;
21   typedef common_type<int, const int>::typef typef;
23   typedef is_same<typet, typef>::type type;