...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
This class is used to build custom pointer containers with an underlying multiset-like container. The interface of the class is an extension of the interface from associative_ptr_container.
Hierarchy:
Navigate:
Synopsis:
namespace boost { template < class Key, class VoidPtrMultiSet, class CloneAllocator = heap_clone_allocator > class ptr_multiset_adapter { public: // modifiers iterator insert( Key* x ); template< class Key2 > iterator insert( compatible-smart-ptr<Key2> x ); public: // pointer container requirements void transfer( iterator object, ptr_multiset_adapter& from ); size_type transfer( iterator first, iterator last, ptr_multiset_adapter& from ); template< class Range > size_type transfer( const Range& r, ptr_multiset_adapter& from ); void transfer( ptr_multiset_adapter& from ); }; // class 'ptr_multiset_adapter' } // namespace 'boost'
iterator insert( key_type* x );
- Requirements: x != 0
- Effects: Takes ownership of x. The returned iterator points to the element with key x.
- Throws: bad_pointer if x == 0
- Exception safety: Strong guarantee
template< class Key2 > iterator insert( compatible-smart-ptr<Key2> x );
- Effects: return insert( x.release() );
void transfer( iterator object, ptr_multiset_adapter& from );
- Requirements: not from.empty()
- Effects: Inserts the object defined by object into the container and remove it from from.
- Postconditions: size() is one more, from.size() is one less.
- Exception safety: Strong guarantee
void transfer( iterator first, iterator last, ptr_multiset_adapter& from );
- Requirements: not from.empty()
- Effects: Inserts the objects defined by the range [first,last) into the container and remove it from from.
- Postconditions: Let N == std::distance(first,last); then size() is N more, from.size() is N less.
- Exception safety: Basic guarantee
template< class Range > void transfer( const Range& r, ptr_multiset_adapter& from );
- Effects: transfer( boost::begin(r), boost::end(r), from );
void transfer( ptr_multiset_adapter& from );
- Effects: transfer( from.begin(), from.end(), from );.
- Postconditions: from.empty();
- Exception safety: Basic guarantee
Copyright: | Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt). |
---|