1--- type_traits.orig	2012-10-04 15:20:43.452992946 -0700
2+++ type_traits	2012-10-04 15:21:32.423657167 -0700
3@@ -1110,7 +1110,7 @@
4
5   template<typename _Tp, typename _Up>
6     struct common_type<_Tp, _Up>
7-    { typedef decltype(true ? declval<_Tp>() : declval<_Up>()) type; };
8+    { typedef typename decay<decltype(true ? declval<_Tp>() : declval<_Up>())>::type type; };
9
10   template<typename _Tp, typename _Up, typename... _Vp>
11     struct common_type<_Tp, _Up, _Vp...>
12