namespace std { template struct integral_constant { static constexpr _Tp value = __v; typedef integral_constant type; }; typedef integral_constant true_type; typedef integral_constant false_type; template struct conditional; template struct __or_; template struct __or_<_B1, _B2> : conditional<_B1::value, _B1, _B2>::type { }; template struct __and_; template struct __and_<_B1, _B2> : conditional<_B1::value, _B2, _B1>::type { }; template struct __not_ : integral_constant { }; struct __is_void_helper : false_type { }; struct is_void : __is_void_helper::type { }; struct is_lvalue_reference : false_type { }; template struct is_rvalue_reference : false_type { }; template struct is_rvalue_reference<_Tp &&> : true_type { }; template struct is_function : false_type { }; template struct is_reference : __or_ >::type { }; template _Tp declval (); template struct remove_all_extents; struct __do_is_destructible_impl { template ().~_Tp)> static true_type __test (int); }; template struct __is_destructible_impl : __do_is_destructible_impl { typedef decltype(__test<_Tp>(0)) type; }; template struct __is_destructible_safe : __is_destructible_impl::type>::type { }; template struct is_destructible : __is_destructible_safe<_Tp>::type { }; struct __do_is_static_castable_impl { template (declval<_From>()))> static true_type __test (int); }; template struct __is_static_castable_impl : __do_is_static_castable_impl { typedef decltype(__test<_From, _To>(0)) type; }; template struct __is_static_castable_safe : __is_static_castable_impl<_From, _To>::type { }; template struct __is_static_castable : integral_constant::value> { }; struct __do_is_direct_constructible_impl { template static false_type __test (...); }; template struct __is_direct_constructible_impl : __do_is_direct_constructible_impl { typedef decltype(__test<_Tp, _Arg>()) type; }; template struct __is_direct_constructible_new_safe : __and_, __is_direct_constructible_impl > { }; template struct is_same; template > >::value> struct __is_base_to_derived_ref; template struct is_constructible; template struct __is_base_to_derived_ref<_From, _To, true> { typedef _To __dst_t; typedef __and_<__not_ >, __not_ > > type; static constexpr int value = type::value; }; template struct __is_direct_constructible_ref_cast : __and_<__is_static_castable<_Arg, _Tp>, __not_<__or_<__is_base_to_derived_ref<_Arg, _Tp>, false_type> > > { }; template struct __is_direct_constructible_new : conditional::value, __is_direct_constructible_ref_cast<_Tp, _Arg>, __is_direct_constructible_new_safe<_Arg> >::type { }; template struct __is_direct_constructible : __is_direct_constructible_new<_Tp, _Arg>::type { }; template struct __is_nary_constructible; template struct __is_nary_constructible<_Tp, _Arg> : __is_direct_constructible<_Tp, _Arg> { }; template struct is_constructible : __is_nary_constructible<_Tp, _Args...>::type { }; template struct is_copy_constructible; template struct __is_move_constructible_impl : is_constructible<_Tp, _Tp &&> { }; template struct is_move_constructible : __is_move_constructible_impl<_Tp> { }; template struct __is_nt_constructible_impl; template struct is_nothrow_constructible : __and_, __is_nt_constructible_impl > { }; template struct __is_nothrow_move_constructible_impl : is_nothrow_constructible<_Tp, _Tp &&> { }; template struct is_nothrow_move_constructible : __is_nothrow_move_constructible_impl<_Tp> { }; template struct is_same : true_type { }; template struct remove_all_extents { typedef int type; }; template struct enable_if { typedef int type; }; template struct conditional { typedef _Iftrue type; }; template struct conditional { typedef _Iffalse type; }; template using decay_t = int; template using enable_if_t = int; template using conditional_t = typename conditional<_Cond, _Iftrue, _Iffalse>::type; template struct __is_in_place_type; class any { template , int _Fits = alignof 0> using _Internal = std::integral_constant; template struct _Manager_internal; template struct _Manager_external; template using _Manager = conditional_t<_Internal<_Tp>::value, _Manager_internal<_Tp>, _Manager_external<_Tp> >; template > using _Decay = enable_if_t::value, _Decayed>; public: any (); template , typename _Mgr = _Manager<_Tp>, enable_if_t<__and_, __not_ >, __not_<__is_in_place_type<_ValueType> > >:: value, bool> = false> any (_ValueType &&) : _M_manager (&_Mgr::_S_manage) { } private: enum _Op { }; void (*_M_manager)(_Op, const any *, int *); template struct _Manager_external { static void _S_manage (_Op, const any *, int *); }; }; template ::value && is_lvalue_reference::value>::type = false> _ValueType any_cast (any &&) { } } using std::any_cast; void test03 () { struct MoveDeleted; MoveDeleted &&md3 = any_cast(0); }