// { dg-do compile } // { dg-options "-std=gnu++0x" } template struct is_same { static const bool value = false; }; template struct is_same { static const bool value = true; }; template const T& foo(); int i; template struct A { double x; }; const A* a = new A(); static_assert(is_same()), const int&>::value, "type should be const int&"); static_assert(is_same::value, "type should be int"); static_assert(is_samex), double>::value, "type should be double"); static_assert(is_samex)), const double&>::value, "type should be const double&");