template struct pointer_traits; template struct pointer_traits<_Tp*> { template using rebind = _Up*; }; template using __ptr_rebind = typename pointer_traits<_Ptr>::template rebind<_Tp>; template struct allocator { typedef _Tp value_type; typedef _Tp* pointer; }; template struct allocator_traits; template struct allocator_traits> { using pointer = _Tp*; template using rebind_alloc = allocator<_Up>; }; template struct __alloc_traits : allocator_traits<_Alloc> { typedef _Alloc allocator_type; typedef allocator_traits<_Alloc> _Base_type; template struct rebind { typedef typename _Base_type::template rebind_alloc<_Tp> other; }; }; template struct _Deque_iterator { template using __iter = _Deque_iterator<_CvTp&, __ptr_rebind<_Ptr, _CvTp>>; typedef __ptr_rebind<_Ptr, long> _Elt_pointer; typedef __ptr_rebind<_Ptr, _Elt_pointer> _Map_pointer; }; template struct _Deque_base { typedef typename __alloc_traits<_Alloc>::template rebind::other _Tp_alloc_type; typedef __alloc_traits<_Tp_alloc_type> _Alloc_traits; typedef typename _Alloc_traits::pointer _Ptr; typedef _Deque_iterator iterator; typedef typename iterator::_Map_pointer _Map_pointer; }; inline void stack () { _Deque_base> c; }