...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
boost::unordered::node_handle_set —
An object that owns a single element extracted from an
unordered_set or an
unordered_multiset, that
can then be inserted into a compatible container type.
The name and template parameters of this type are implementation
defined, and should be obtained using the node_type
member typedef from the appropriate container.
// In header: <boost/unordered_set.hpp> template<typename ImplementationDefined> class node_handle_set { public: // types typedef typename Container::value_type> value_type; typedef typename Container::allocator_type> allocator_type; // construct/copy/destruct constexpr node_handle_set() noexcept; node_handle_set(node_handle_set &&) noexcept; ~node_handle_set(); node_handle_set& operator=(node_handle_set&&); value_type& value() const; allocator_type get_allocator() const; explicit operator bool() const noexcept; bool empty() const noexcept; void swap(node_handle_set&) noexcept(ator_traits::propagate_on_container_swap::value); }; // swap template<typename ImplementationDefined> void swap(node_handle_set<ImplementationDefined>&, node_handle_set<ImplementationDefined>&);
node_handle_set& operator=(node_handle_set&&);
value_type& value() const;
allocator_type get_allocator() const;
explicit operator bool() const noexcept;
bool empty() const noexcept;
void swap(node_handle_set&) noexcept(ator_traits::propagate_on_container_swap::value);
Notes: |
In C++17 is also |