2 // { dg-do compile { target c++11 } }
3 // { dg-options "-Wdangling-reference" }
6 struct any { void *p; ~any(); };
7 template <typename _ValueType> _ValueType any_cast(any &&);
8 template <typename _Tp> struct remove_reference { using type = _Tp; };
9 template <typename _Tp> _Tp forward(typename remove_reference<_Tp>::type);
10 template <typename _Tp> typename remove_reference<_Tp>::type move(_Tp);
13 const int &r = std::any_cast<int&>(std::any()); // { dg-warning "dangling reference" }
15 template <class T> struct C {
16 T t_; // { dg-warning "dangling reference" }
18 template <class U> C(U c) : t_(std::forward<T>(c.t_)) {}
27 C<B &&>(std::move(ca));