Pointer Container Library

Class ptr_list

A ptr_list<T> is a pointer container that uses an underlying std:list<void*> to store the pointers.

Hierarchy:


Navigate


Synopsis

namespace boost
{      

    template
    < 
        class T, 
        class CloneAllocator = heap_clone_allocator,
        class Allocator      = std::allocator<void*>
    >
    class ptr_list : public ptr_sequence_adapter
                            <
                                T,
                                std::list<void*,Allocator>,
                                CloneAllocator
                            >
    {
    
    public: // modifiers
        void                push_front( T* x );
        template< class U >
        void                push_front( std::auto_ptr<U> x );
        auto_type           pop_front();
     
    public: // list operations
        void  reverse();

    }; // class 'ptr_list'

} // namespace 'boost'  

Semantics

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() );

  • 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

Semantics: list operations

  • void reverse();
    • Effects: reverses the underlying sequence

    • Throws: nothing


©Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see http://www.boost.org/LICENSE_1_0.txt).

Top