41 #ifndef PB_DS_TYPES_TRAITS_HPP
42 #define PB_DS_TYPES_TRAITS_HPP
52 template<
typename Key,
typename Mapped,
typename Alloc,
bool Store_Extra>
53 struct vt_base_selector
55 typedef value_type_base<Key, Mapped, Alloc, Store_Extra> type;
58 template<
typename Key,
typename Mapped,
typename Alloc,
bool Store_Extra>
60 :
public vt_base_selector<Key, Mapped, Alloc, Store_Extra>::type
62 typedef typename Alloc::template rebind<Key>::other key_allocator;
63 typedef typename key_allocator::value_type key_type;
64 typedef typename key_allocator::pointer key_pointer;
65 typedef typename key_allocator::const_pointer const_key_pointer;
66 typedef typename key_allocator::reference key_reference;
67 typedef typename key_allocator::const_reference const_key_reference;
68 typedef typename Alloc::size_type size_type;
73 typedef integral_constant<int, Store_Extra> store_extra;
74 store_extra m_store_extra_indicator;
76 typedef typename no_throw_copies<Key, Mapped>::indicator no_throw_copies;
77 no_throw_copies m_no_throw_copies_indicator;
Struct holding two objects of arbitrary type.