// { dg-do compile { target c++11 } } template struct is_same { static const bool value = false; }; template struct is_same { static const bool value = true; }; const int& foo(); int i; struct A { double x; }; const A* a = new A(); static_assert(is_same::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&");