45 template<
typename T,
typename U =
void>
48 struct crack_key<T, typename
std::void_t<typename T::key_type>> {
typedef typename T::key_type
key_type; };
50 template <
typename Container>
125 template <typename T, typename Pr = std::less<typename crack_key<T>::key_type>,
typename Alloc = std::allocator<std::pair<typename crack_key<T>::key_type
const, T> > >
126 class mutable_set :
public mutable_base<std::map<typename crack_key<T>::key_type, T, Pr, typename std::allocator_traits<Alloc>::template rebind_alloc<std::pair<typename crack_key<T>::key_type const, T>>>>
141 for (
auto& e : aElements)
144 template <
typename InputIter>
147 for (
auto e = aFirst; e != aLast; ++e)
153 return iterator(base_type::insert(std::make_pair(
static_cast<key_type>(aValue), aValue)).first);
166 template <typename T, typename Pr = std::less<typename crack_key<T>::key_type>,
typename Alloc = std::allocator<std::pair<typename crack_key<T>::key_type
const, T> > >
167 class mutable_multiset :
public mutable_base<std::multimap<typename crack_key<T>::key_type, T, Pr, typename std::allocator_traits<Alloc>::template rebind_alloc<std::pair<typename crack_key<T>::key_type const, T>>>>
182 for (
auto& e : aElements)
185 template <
typename InputIter>
188 for (
auto e = aFirst; e != aLast; ++e)
194 return iterator(base_type::insert(std::make_pair(
static_cast<key_type>(aValue), aValue)));
const_iterator(typename std_type::const_iterator aIterator)
const value_type & reference
reference operator*() const
const_iterator(typename std_type::iterator aIterator)
pointer operator->() const
mutable_base::value_type value_type
const value_type * pointer
const value_type * pointer
mutable_base::value_type value_type
const_reverse_iterator(typename std_type::reverse_iterator aIterator)
const_reverse_iterator(typename std_type::const_reverse_iterator aIterator)
const value_type & reference
pointer operator->() const
reference operator*() const
pointer operator->() const
mutable_base::value_type value_type
iterator(typename std_type::iterator aIterator)
reference operator*() const
mutable_base::value_type value_type
reference operator*() const
pointer operator->() const
reverse_iterator(typename std_type::reverse_iterator aIterator)
const_iterator find(const key_type &aKey) const
reverse_iterator rbegin()
iterator find(const key_type &aKey)
const_reverse_iterator rend() const
const_reverse_iterator rbegin() const
std_type::mapped_type value_type
const_reverse_iterator crend() const
const_iterator cbegin() const
const_iterator end() const
std_type::key_type key_type
const_iterator begin() const
const_reverse_iterator crbegin() const
const_iterator cend() const
iterator insert(const typename base_type::value_type &aValue)
mutable_multiset(std::initializer_list< T > aElements)
iterator find(const typename base_type::value_type &aValue)
const_iterator find(const typename base_type::value_type &aValue) const
mutable_multiset(InputIter aFirst, InputIter aLast)
crack_key< T >::key_type key_type
iterator find(const typename base_type::value_type &aValue)
mutable_set(std::initializer_list< T > aElements)
iterator insert(const typename base_type::value_type &aValue)
mutable_set(InputIter aFirst, InputIter aLast)
crack_key< T >::key_type key_type
const_iterator find(const typename base_type::value_type &aValue) const