Files
ptr_container/doc/ptr_deque.rst
Thorsten Jørgen Ottosen 08a67ea98a doc update
[SVN r33300]
2006-03-10 09:14:55 +00:00

171 lines
4.1 KiB
ReStructuredText
Executable File

++++++++++++++++++++++++++++++++++
|Boost| Pointer Container Library
++++++++++++++++++++++++++++++++++
.. |Boost| image:: boost.png
Class ``ptr_deque``
--------------------
A ``ptr_deque<T>`` is a pointer container that uses an underlying ``std:deque<void*>``
to store the pointers.
**See also:**
- reversible_ptr_container_
- ptr_sequence_adapter_
.. _reversible_ptr_container: reversible_ptr_container.html
.. _ptr_map: ptr_map.html
**Navigate:**
- `home <ptr_container.html>`_
- `reference <reference.html>`_
**Synopsis:**
.. parsed-literal::
namespace boost
{
template
<
class T,
class CloneAllocator = heap_clone_allocator
class Allocator = std::allocator<void*>
>
class ptr_deque : public ptr_sequence_adapter
<
T,
std::deque<void*,Allocator>,
CloneAllocator
>
{
public: // `element access`_
T& operator[]( size_type n );
const T& operator[]( size_type n ) const;
T& at( size_type n );
const T& at( size_type n ) const;
public: // modifiers_
void push_front( T* x );
template< class U >
void push_front( std::auto_ptr<U> x );
auto_type pop_front();
public: // `pointer container requirements`_
auto_type replace( size_type idx, T* x );
template< class U >
auto_type replace( size_type idx, std::auto_ptr<U> x );
bool is_null( size_type idx ) const;
};
} // namespace 'boost'
.. _`reversible_ptr_container`: reversible_ptr_container.html
.. _`ptr_sequence_adapter`: ptr_sequence_adapter.html
Semantics
---------
.. _modifiers:
Semantics: modifiers
^^^^^^^^^^^^^^^^^^^^
- ``void push_front( T* x );``
- Requirements: ``x != 0``
- Effects: Inserts the pointer into container and takes ownership of it
- Throws: ``bad_pointer`` if ``x == 0``
- Exception safety: Strong guarantee
- ``template< class U > void push_front( std::auto_ptr<U> x );``
- Effects: ``push_front( x.release() );``
..
- ``void push_front( const T& x );``
- Effects: push_front( allocate_clone( x ) );
- Exception safety: Strong guarantee
- ``auto_type pop_front():``
- Requirements:``not empty()``
- Effects: Removes the first element in the container
- Postconditions: ``size()`` is one less
- Throws: ``bad_ptr_container_operation`` if ``empty() == true``
- Exception safety: Strong guarantee
.. _`element access`:
Semantics: element access
^^^^^^^^^^^^^^^^^^^^^^^^^
- ``T& operator[]( size_type n );``
- ``const T& operator[]( size_type n ) const;``
- Requirements: ``n < size()``
- Effects: Returns a reference to the ``n``'th element
- Throws: Nothing
- ``T& at( size_type n );``
- ``const T& at( size_type n ) const;``
- Requirements: ``n < size()``
- Effects: Returns a reference to the ``n``'th element
- Throws: ``bad_index`` if ``n >=size()``
.. _`pointer container requirements`:
Semantics: pointer container requirements
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- ``auto_type replace( size_type idx, T* x );``
- Requirements: `` x != 0 and idx < size()``
- Effects: returns the object indexed by ``idx`` and replaces it with ``x``.
- Throws: ``bad_index`` if ``idx >= size()`` and ``bad_pointer`` if ``x == 0``.
- Exception safety: Strong guarantee
- ``template< class U > auto_type replace( size_type idx, std::auto_ptr<U> x );``
- Effects: ``return replace( idx, x.release() );``
- ``bool is_null( size_type idx ) const;``
- Requirements: ``idx < size()``
- Effects: returns whether the pointer at index ``idx`` is null
- Exception safety: Nothrow guarantee
:copyright: Thorsten Ottosen 2004-2005.