Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for an old version of boost. Click here for the latest Boost documentation.
PrevUpHomeNext

Boost.Interprocess Reference

Header <boost/interprocess/allocators/adaptive_pool.hpp>
Header <boost/interprocess/allocators/allocator.hpp>
Header <boost/interprocess/allocators/cached_adaptive_pool.hpp>
Header <boost/interprocess/allocators/cached_node_allocator.hpp>
Header <boost/interprocess/allocators/node_allocator.hpp>
Header <boost/interprocess/allocators/private_adaptive_pool.hpp>
Header <boost/interprocess/allocators/private_node_allocator.hpp>
Header <boost/interprocess/anonymous_shared_memory.hpp>
Header <boost/interprocess/containers/allocation_type.hpp>
Header <boost/interprocess/containers/containers_fwd.hpp>
Header <boost/interprocess/containers/deque.hpp>
Header <boost/interprocess/containers/flat_map.hpp>
Header <boost/interprocess/containers/flat_set.hpp>
Header <boost/interprocess/containers/list.hpp>
Header <boost/interprocess/containers/map.hpp>
Header <boost/interprocess/containers/pair.hpp>
Header <boost/interprocess/containers/set.hpp>
Header <boost/interprocess/containers/slist.hpp>
Header <boost/interprocess/containers/stable_vector.hpp>
Header <boost/interprocess/containers/string.hpp>
Header <boost/interprocess/containers/vector.hpp>
Header <boost/interprocess/containers/version_type.hpp>
Header <boost/interprocess/creation_tags.hpp>
Header <boost/interprocess/errors.hpp>
Header <boost/interprocess/exceptions.hpp>
Header <boost/interprocess/file_mapping.hpp>
Header <boost/interprocess/indexes/flat_map_index.hpp>
Header <boost/interprocess/indexes/iset_index.hpp>
Header <boost/interprocess/indexes/iunordered_set_index.hpp>
Header <boost/interprocess/indexes/map_index.hpp>
Header <boost/interprocess/indexes/null_index.hpp>
Header <boost/interprocess/indexes/unordered_map_index.hpp>
Header <boost/interprocess/interprocess_fwd.hpp>
Header <boost/interprocess/ipc/message_queue.hpp>
Header <boost/interprocess/managed_external_buffer.hpp>
Header <boost/interprocess/managed_heap_memory.hpp>
Header <boost/interprocess/managed_mapped_file.hpp>
Header <boost/interprocess/managed_shared_memory.hpp>
Header <boost/interprocess/managed_windows_shared_memory.hpp>
Header <boost/interprocess/managed_xsi_shared_memory.hpp>
Header <boost/interprocess/mapped_region.hpp>
Header <boost/interprocess/mem_algo/rbtree_best_fit.hpp>
Header <boost/interprocess/mem_algo/simple_seq_fit.hpp>
Header <boost/interprocess/offset_ptr.hpp>
Header <boost/interprocess/permissions.hpp>
Header <boost/interprocess/segment_manager.hpp>
Header <boost/interprocess/shared_memory_object.hpp>
Header <boost/interprocess/smart_ptr/deleter.hpp>
Header <boost/interprocess/smart_ptr/enable_shared_from_this.hpp>
Header <boost/interprocess/smart_ptr/intrusive_ptr.hpp>
Header <boost/interprocess/smart_ptr/scoped_ptr.hpp>
Header <boost/interprocess/smart_ptr/shared_ptr.hpp>
Header <boost/interprocess/smart_ptr/unique_ptr.hpp>
Header <boost/interprocess/smart_ptr/weak_ptr.hpp>
Header <boost/interprocess/streams/bufferstream.hpp>
Header <boost/interprocess/streams/vectorstream.hpp>
Header <boost/interprocess/sync/file_lock.hpp>
Header <boost/interprocess/sync/interprocess_barrier.hpp>
Header <boost/interprocess/sync/interprocess_condition.hpp>
Header <boost/interprocess/sync/interprocess_mutex.hpp>
Header <boost/interprocess/sync/interprocess_recursive_mutex.hpp>
Header <boost/interprocess/sync/interprocess_semaphore.hpp>
Header <boost/interprocess/sync/interprocess_upgradable_mutex.hpp>
Header <boost/interprocess/sync/lock_options.hpp>
Header <boost/interprocess/sync/mutex_family.hpp>
Header <boost/interprocess/sync/named_condition.hpp>
Header <boost/interprocess/sync/named_mutex.hpp>
Header <boost/interprocess/sync/named_recursive_mutex.hpp>
Header <boost/interprocess/sync/named_semaphore.hpp>
Header <boost/interprocess/sync/named_upgradable_mutex.hpp>
Header <boost/interprocess/sync/null_mutex.hpp>
Header <boost/interprocess/sync/scoped_lock.hpp>
Header <boost/interprocess/sync/sharable_lock.hpp>
Header <boost/interprocess/sync/upgradable_lock.hpp>
Header <boost/interprocess/windows_shared_memory.hpp>
Header <boost/interprocess/xsi_key.hpp>
Header <boost/interprocess/xsi_shared_memory.hpp>

Describes adaptive_pool pooled shared memory STL compatible allocator

namespace boost {
  namespace interprocess {
    template<typename T, typename SegmentManager, std::size_t NodesPerBlock, 
             std::size_t MaxFreeBlocks, unsigned char OverheadPercent> 
      class adaptive_pool<2, T, SegmentManager, NodesPerBlock, MaxFreeBlocks, OverheadPercent>;
    template<typename T, typename S, std::size_t NodesPerBlock, std::size_t F, 
             unsigned char OP> 
      bool operator==(const adaptive_pool< T, S, NodesPerBlock, F, OP > &, 
                      const adaptive_pool< T, S, NodesPerBlock, F, OP > &);
    template<typename T, typename S, std::size_t NodesPerBlock, std::size_t F, 
             unsigned char OP> 
      bool operator!=(const adaptive_pool< T, S, NodesPerBlock, F, OP > &, 
                      const adaptive_pool< T, S, NodesPerBlock, F, OP > &);
  }
}

Describes an allocator that allocates portions of fixed size memory buffer (shared memory, mapped file...)

namespace boost {
  template<typename T, typename SegmentManager> 
    struct has_trivial_destructor<boost::interprocess::allocator< T, SegmentManager >>;
  namespace interprocess {
    template<typename T, typename SegmentManager> class allocator;
    template<typename T, typename SegmentManager> 
      bool operator==(const allocator< T, SegmentManager > &, 
                      const allocator< T, SegmentManager > &);
    template<typename T, typename SegmentManager> 
      bool operator!=(const allocator< T, SegmentManager > &, 
                      const allocator< T, SegmentManager > &);
  }
}

Describes cached_adaptive_pool pooled shared memory STL compatible allocator

namespace boost {
  namespace interprocess {
    template<typename T, typename SegmentManager, std::size_t NodesPerBlock, 
             std::size_t MaxFreeBlocks, unsigned char OverheadPercent> 
      class cached_adaptive_pool<T, detail::shared_adaptive_node_pool< SegmentManager, sizeof_value< T >::value, NodesPerBlock, MaxFreeBlocks, OverheadPercent >, 2>;
    template<typename T, typename S, std::size_t NodesPerBlock, std::size_t F, 
             std::size_t OP> 
      bool operator==(const cached_adaptive_pool< T, S, NodesPerBlock, F, OP > &, 
                      const cached_adaptive_pool< T, S, NodesPerBlock, F, OP > &);
    template<typename T, typename S, std::size_t NodesPerBlock, std::size_t F, 
             std::size_t OP> 
      bool operator!=(const cached_adaptive_pool< T, S, NodesPerBlock, F, OP > &, 
                      const cached_adaptive_pool< T, S, NodesPerBlock, F, OP > &);
  }
}

Describes cached_cached_node_allocator pooled shared memory STL compatible allocator

namespace boost {
  namespace interprocess {
    template<typename T, typename SegmentManager, std::size_t NodesPerBlock> 
      class cached_node_allocator<T, detail::shared_node_pool< SegmentManager, sizeof_value< T >::value, NodesPerBlock >, 2>;
    template<typename T, typename S, std::size_t NPC> 
      bool operator==(const cached_node_allocator< T, S, NPC > &, 
                      const cached_node_allocator< T, S, NPC > &);
    template<typename T, typename S, std::size_t NPC> 
      bool operator!=(const cached_node_allocator< T, S, NPC > &, 
                      const cached_node_allocator< T, S, NPC > &);
  }
}

Describes node_allocator pooled shared memory STL compatible allocator

namespace boost {
  namespace interprocess {
    template<typename T, typename SegmentManager, std::size_t NodesPerBlock> 
      class node_allocator<2, T, SegmentManager, NodesPerBlock>;
    template<typename T, typename S, std::size_t NPC> 
      bool operator==(const node_allocator< T, S, NPC > &, 
                      const node_allocator< T, S, NPC > &);
    template<typename T, typename S, std::size_t NPC> 
      bool operator!=(const node_allocator< T, S, NPC > &, 
                      const node_allocator< T, S, NPC > &);
  }
}

Describes private_adaptive_pool_base pooled shared memory STL compatible allocator

namespace boost {
  namespace interprocess {
    template<typename T, typename SegmentManager, std::size_t NodesPerBlock, 
             std::size_t MaxFreeBlocks, unsigned char OverheadPercent> 
      class private_adaptive_pool<2, T, SegmentManager, NodesPerBlock, MaxFreeBlocks, OverheadPercent>;
    template<typename T, typename S, std::size_t NodesPerBlock, std::size_t F, 
             unsigned char OP> 
      bool operator==(const private_adaptive_pool< T, S, NodesPerBlock, F, OP > &, 
                      const private_adaptive_pool< T, S, NodesPerBlock, F, OP > &);
    template<typename T, typename S, std::size_t NodesPerBlock, std::size_t F, 
             unsigned char OP> 
      bool operator!=(const private_adaptive_pool< T, S, NodesPerBlock, F, OP > &, 
                      const private_adaptive_pool< T, S, NodesPerBlock, F, OP > &);
  }
}

Describes private_node_allocator_base pooled shared memory STL compatible allocator

namespace boost {
  namespace interprocess {
    template<typename T, typename SegmentManager, std::size_t NodesPerBlock> 
      class private_node_allocator<2, T, SegmentManager, NodesPerBlock>;
    template<typename T, typename S, std::size_t NodesPerBlock, std::size_t F, 
             unsigned char OP> 
      bool operator==(const private_node_allocator< T, S, NodesPerBlock, F, OP > &, 
                      const private_node_allocator< T, S, NodesPerBlock, F, OP > &);
    template<typename T, typename S, std::size_t NodesPerBlock, std::size_t F, 
             unsigned char OP> 
      bool operator!=(const private_node_allocator< T, S, NodesPerBlock, F, OP > &, 
                      const private_node_allocator< T, S, NodesPerBlock, F, OP > &);
  }
}

Describes a function that creates anonymous shared memory that can be shared between forked processes

namespace boost {
  namespace interprocess {
    mapped_region anonymous_shared_memory(std::size_t, void * = 0);
  }
}
namespace boost {
  namespace interprocess {
    struct create_only_t;
    struct open_only_t;
    struct open_read_only_t;
    struct open_read_private_t;
    struct open_copy_on_write_t;
    struct open_or_create_t;

    static const create_only_t create_only;
    static const open_only_t open_only;
    static const open_read_only_t open_read_only;
    static const open_or_create_t open_or_create;
    static const open_copy_on_write_t open_copy_on_write;
  }
}

Describes the error numbering of interprocess classes

namespace boost {
  namespace interprocess {
    struct error_info;

    typedef int native_error_t;  // int system_error_code() // artifact of POSIX and WINDOWS error reporting 

    static const ec_xlate ec_table;
    error_code_t lookup_error(native_error_t err);
  }
}

Describes exceptions thrown by interprocess classes

namespace boost {
  namespace interprocess {
    class interprocess_exception;
    class lock_exception;
    class bad_alloc;
  }
}

Describes file_mapping and mapped region classes

namespace boost {
  namespace interprocess {
    class file_mapping;
    class remove_file_on_destroy;
  }
}

Describes index adaptor of boost::map container, to use it as name/shared memory index

namespace boost {
  namespace interprocess {
    template<typename MapConfig> struct flat_map_index_aux;

    template<typename MapConfig> class flat_map_index;
  }
}

Describes index adaptor of boost::intrusive::set container, to use it as name/shared memory index

namespace boost {
  namespace interprocess {
    template<typename MapConfig> struct iset_index_aux;

    template<typename MapConfig> class iset_index;

    template<typename MapConfig> 
      struct is_intrusive_index<boost::interprocess::iset_index< MapConfig >>;
  }
}

Describes index adaptor of boost::intrusive::unordered_set container, to use it as name/shared memory index

namespace boost {
  namespace interprocess {
    template<typename MapConfig> struct iunordered_set_index_aux;

    template<typename MapConfig> class iunordered_set_index;

    template<typename MapConfig> 
      struct is_intrusive_index<boost::interprocess::iunordered_set_index< MapConfig >>;
  }
}

Describes index adaptor of boost::map container, to use it as name/shared memory index

namespace boost {
  namespace interprocess {
    template<typename MapConfig> class map_index;

    template<typename MapConfig> 
      struct is_node_index<boost::interprocess::map_index< MapConfig >>;
  }
}

Describes a null index adaptor, so that if we don't want to construct named objects, we can use this null index type to save resources.

namespace boost {
  namespace interprocess {
    template<typename MapConfig> class null_index;
  }
}

Describes index adaptor of boost::unordered_map container, to use it as name/shared memory index

namespace boost {
  namespace interprocess {
    template<typename MapConfig> struct unordered_map_index_aux;

    template<typename MapConfig> class unordered_map_index;

    template<typename MapConfig> 
      struct is_node_index<boost::interprocess::unordered_map_index< MapConfig >>;
  }
}
namespace boost {
  namespace interprocess {
    typedef basic_managed_external_buffer< char,rbtree_best_fit< null_mutex_family >,iset_index > managed_external_buffer;
    typedef basic_managed_external_buffer< wchar_t,rbtree_best_fit< null_mutex_family >,iset_index > wmanaged_external_buffer;
    typedef basic_managed_shared_memory< char,rbtree_best_fit< mutex_family >,iset_index > managed_shared_memory;
    typedef basic_managed_shared_memory< wchar_t,rbtree_best_fit< mutex_family >,iset_index > wmanaged_shared_memory;
    typedef basic_managed_windows_shared_memory< char,rbtree_best_fit< mutex_family >,iset_index > managed_windows_shared_memory;
    typedef basic_managed_windows_shared_memory< wchar_t,rbtree_best_fit< mutex_family >,iset_index > wmanaged_windows_shared_memory;
    typedef basic_managed_xsi_shared_memory< char,rbtree_best_fit< mutex_family >,iset_index > managed_xsi_shared_memory;
    typedef basic_managed_xsi_shared_memory< wchar_t,rbtree_best_fit< mutex_family >,iset_index > wmanaged_xsi_shared_memory;
    typedef basic_managed_shared_memory< char,rbtree_best_fit< mutex_family, void * >,iset_index > fixed_managed_shared_memory;
    typedef basic_managed_shared_memory< wchar_t,rbtree_best_fit< mutex_family, void * >,iset_index > wfixed_managed_shared_memory;
    typedef basic_managed_heap_memory< char,rbtree_best_fit< null_mutex_family >,iset_index > managed_heap_memory;
    typedef basic_managed_heap_memory< wchar_t,rbtree_best_fit< null_mutex_family >,iset_index > wmanaged_heap_memory;
    typedef basic_managed_mapped_file< char,rbtree_best_fit< mutex_family >,iset_index > managed_mapped_file;
    typedef basic_managed_mapped_file< wchar_t,rbtree_best_fit< mutex_family >,iset_index > wmanaged_mapped_file;
  }
  namespace intrusive {
  }
}namespace std {
}

Describes an inter-process message queue. This class allows sending messages between processes and allows blocking, non-blocking and timed sending and receiving.

namespace boost {
  namespace interprocess {
    class message_queue;
  }
}

Describes a named user memory allocation user class.

namespace boost {
  namespace interprocess {
    template<typename CharType, typename AllocationAlgorithm, 
             template< class IndexConfig > class IndexType> 
      class basic_managed_external_buffer;
  }
}

Describes a named heap memory allocation user class.

namespace boost {
  namespace interprocess {
    template<typename CharType, typename AllocationAlgorithm, 
             template< class IndexConfig > class IndexType> 
      class basic_managed_heap_memory;
  }
}
namespace boost {
  namespace interprocess {
    template<typename CharType, typename AllocationAlgorithm, 
             template< class IndexConfig > class IndexType> 
      class basic_managed_mapped_file;
  }
}
namespace boost {
  namespace interprocess {
    template<typename CharType, typename AllocationAlgorithm, 
             template< class IndexConfig > class IndexType> 
      class basic_managed_shared_memory;
  }
}
namespace boost {
  namespace interprocess {
    template<typename CharType, typename AllocationAlgorithm, 
             template< class IndexConfig > class IndexType> 
      class basic_managed_windows_shared_memory;
  }
}
namespace boost {
  namespace interprocess {
    template<typename CharType, typename AllocationAlgorithm, 
             template< class IndexConfig > class IndexType> 
      class basic_managed_xsi_shared_memory;
  }
}

Describes mapped region class

namespace boost {
  namespace interprocess {
    class mapped_region;

    struct null_mapped_region_function;

    // @ 
    void swap(mapped_region & x, mapped_region & y);
  }
}

Describes a best-fit algorithm based in an intrusive red-black tree used to allocate objects in shared memory. This class is intended as a base class for single segment and multi-segment implementations.

namespace boost {
  namespace interprocess {
    template<typename MutexFamily, typename VoidPointer, 
             std::size_t MemAlignment> 
      class rbtree_best_fit;
  }
}

Describes sequential fit algorithm used to allocate objects in shared memory.

namespace boost {
  namespace interprocess {
    template<typename MutexFamily, typename VoidPointer> class simple_seq_fit;
  }
}

Describes a smart pointer that stores the offset between this pointer and target pointee, called offset_ptr.

namespace boost {
  template<typename T> 
    struct has_trivial_constructor<boost::interprocess::offset_ptr< T >>;
  template<typename T> 
    struct has_trivial_destructor<boost::interprocess::offset_ptr< T >>;
  namespace interprocess {
    template<typename PointedType> class offset_ptr;
    template<typename T1, typename T2> 
      bool operator==(const offset_ptr< T1 > &, const offset_ptr< T2 > &);
    template<typename T1, typename T2> 
      bool operator!=(const offset_ptr< T1 > &, const offset_ptr< T2 > &);
    template<typename T1, typename T2> 
      bool operator<(const offset_ptr< T1 > &, const offset_ptr< T2 > &);
    template<typename T1, typename T2> 
      bool operator<=(const offset_ptr< T1 > &, const offset_ptr< T2 > &);
    template<typename T1, typename T2> 
      bool operator>(const offset_ptr< T1 > &, const offset_ptr< T2 > &);
    template<typename T1, typename T2> 
      bool operator>=(const offset_ptr< T1 > &, const offset_ptr< T2 > &);
    template<typename E, typename T, typename Y> 
      std::basic_ostream< E, T > & 
      operator<<(std::basic_ostream< E, T > &, offset_ptr< Y > const &);
    template<typename E, typename T, typename Y> 
      std::basic_istream< E, T > & 
      operator>>(std::basic_istream< E, T > &, offset_ptr< Y > &);
    template<typename T> 
      offset_ptr< T > operator+(std::ptrdiff_t, const offset_ptr< T > &);
    template<typename T, typename T2> 
      std::ptrdiff_t 
      operator-(const offset_ptr< T > &, const offset_ptr< T2 > &);
    template<typename T> 
      void swap(boost::interprocess::offset_ptr< T > &, 
                boost::interprocess::offset_ptr< T > &);

    // Simulation of static_cast between pointers. Never throws. 
    template<typename T, typename U> 
      boost::interprocess::offset_ptr< T > 
      static_pointer_cast(const boost::interprocess::offset_ptr< U > & r);

    // Simulation of const_cast between pointers. Never throws. 
    template<typename T, typename U> 
      boost::interprocess::offset_ptr< T > 
      const_pointer_cast(const boost::interprocess::offset_ptr< U > & r);

    // Simulation of dynamic_cast between pointers. Never throws. 
    template<typename T, typename U> 
      boost::interprocess::offset_ptr< T > 
      dynamic_pointer_cast(const boost::interprocess::offset_ptr< U > & r);

    // Simulation of reinterpret_cast between pointers. Never throws. 
    template<typename T, typename U> 
      boost::interprocess::offset_ptr< T > 
      reinterpret_pointer_cast(const boost::interprocess::offset_ptr< U > & r);
    template<typename T> 
      T * get_pointer(boost::interprocess::offset_ptr< T > const &);
  }
  namespace intrusive {
    template<std::size_t Alignment> 
      struct max_pointer_plus_bits<boost::interprocess::offset_ptr< void >, Alignment>;
    template<typename T, std::size_t NumBits> 
      struct pointer_plus_bits<boost::interprocess::offset_ptr< T >, NumBits>;
  }
}

@

Describes permissions class

namespace boost {
  namespace interprocess {
    class permissions;
  }
}

Describes the object placed in a memory segment that provides named object allocation capabilities for single-segment and multi-segment allocations.

namespace boost {
  namespace interprocess {
    template<typename MemoryAlgorithm> class segment_manager_base;
    template<typename CharType, typename MemoryAlgorithm, 
             template< class IndexConfig > class IndexType> 
      class segment_manager;
  }
}

Describes a shared memory object management class.

namespace boost {
  namespace interprocess {
    class shared_memory_object;
    class remove_shared_memory_on_destroy;
  }
}

Describes the functor to delete objects from the segment.

namespace boost {
  namespace interprocess {
    template<typename T, typename SegmentManager> class deleter;
  }
}

Describes an utility to form a shared pointer from this

namespace boost {
  namespace interprocess {
    template<typename T, typename A, typename D> class enable_shared_from_this;
  }
}

Describes an intrusive ownership pointer.

namespace boost {
  namespace interprocess {
    template<typename T, typename VoidPointer> class intrusive_ptr;
    template<typename T, typename U, typename VP> 
      bool operator==(intrusive_ptr< T, VP > const &, 
                      intrusive_ptr< U, VP > const &);
    template<typename T, typename U, typename VP> 
      bool operator!=(intrusive_ptr< T, VP > const &, 
                      intrusive_ptr< U, VP > const &);
    template<typename T, typename VP> 
      bool operator==(intrusive_ptr< T, VP > const &, 
                      const typename intrusive_ptr< T, VP >::pointer &);
    template<typename T, typename VP> 
      bool operator!=(intrusive_ptr< T, VP > const &, 
                      const typename intrusive_ptr< T, VP >::pointer &);
    template<typename T, typename VP> 
      bool operator==(const typename intrusive_ptr< T, VP >::pointer &, 
                      intrusive_ptr< T, VP > const &);
    template<typename T, typename VP> 
      bool operator!=(const typename intrusive_ptr< T, VP >::pointer &, 
                      intrusive_ptr< T, VP > const &);
    template<typename T, typename VP> 
      bool operator<(intrusive_ptr< T, VP > const &, 
                     intrusive_ptr< T, VP > const &);
    template<typename T, typename VP> 
      void swap(intrusive_ptr< T, VP > &, intrusive_ptr< T, VP > &);
    template<typename E, typename T, typename Y, typename VP> 
      std::basic_ostream< E, T > & 
      operator<<(std::basic_ostream< E, T > & os, 
                 intrusive_ptr< Y, VP > const & p);
    template<typename T, typename VP> 
      boost::interprocess::intrusive_ptr< T, VP >::pointer 
      get_pointer(intrusive_ptr< T, VP >);
  }
}

Describes the smart pointer scoped_ptr

namespace boost {
  namespace interprocess {
    template<typename T, typename Deleter> class scoped_ptr;
    template<typename T, typename D> 
      void swap(scoped_ptr< T, D > &, scoped_ptr< T, D > &);
    template<typename T, typename D> 
      scoped_ptr< T, D >::pointer get_pointer(scoped_ptr< T, D > const &);
  }
}

Describes the smart pointer shared_ptr

namespace boost {
  namespace interprocess {
    template<typename T, typename VoidAllocator, typename Deleter> 
      class shared_ptr;

    template<typename T, typename ManagedMemory> struct managed_shared_ptr;
    template<typename T, typename VoidAllocator, typename Deleter, typename U, 
             typename VoidAllocator2, typename Deleter2> 
      bool operator==(shared_ptr< T, VoidAllocator, Deleter > const & a, 
                      shared_ptr< U, VoidAllocator2, Deleter2 > const & b);
    template<typename T, typename VoidAllocator, typename Deleter, typename U, 
             typename VoidAllocator2, typename Deleter2> 
      bool operator!=(shared_ptr< T, VoidAllocator, Deleter > const & a, 
                      shared_ptr< U, VoidAllocator2, Deleter2 > const & b);
    template<typename T, typename VoidAllocator, typename Deleter, typename U, 
             typename VoidAllocator2, typename Deleter2> 
      bool operator<(shared_ptr< T, VoidAllocator, Deleter > const & a, 
                     shared_ptr< U, VoidAllocator2, Deleter2 > const & b);
    template<typename T, typename VoidAllocator, typename Deleter> 
      void swap(shared_ptr< T, VoidAllocator, Deleter > & a, 
                shared_ptr< T, VoidAllocator, Deleter > & b);
    template<typename T, typename VoidAllocator, typename Deleter, typename U> 
      shared_ptr< T, VoidAllocator, Deleter > 
      static_pointer_cast(shared_ptr< U, VoidAllocator, Deleter > const & r);
    template<typename T, typename VoidAllocator, typename Deleter, typename U> 
      shared_ptr< T, VoidAllocator, Deleter > 
      const_pointer_cast(shared_ptr< U, VoidAllocator, Deleter > const & r);
    template<typename T, typename VoidAllocator, typename Deleter, typename U> 
      shared_ptr< T, VoidAllocator, Deleter > 
      dynamic_pointer_cast(shared_ptr< U, VoidAllocator, Deleter > const & r);
    template<typename T, typename VoidAllocator, typename Deleter> 
      T * get_pointer(shared_ptr< T, VoidAllocator, Deleter > const & p);
    template<typename E, typename T, typename Y, typename VoidAllocator, 
             typename Deleter> 
      std::basic_ostream< E, T > & 
      operator<<(std::basic_ostream< E, T > & os, 
                 shared_ptr< Y, VoidAllocator, Deleter > const & p);
    template<typename T, typename ManagedMemory> 
      managed_shared_ptr< T, ManagedMemory >::type 
      make_managed_shared_ptr(T *, ManagedMemory &);
  }
}

Describes the smart pointer unique_ptr

namespace boost {
  namespace interprocess {
    template<typename T, typename D> class unique_ptr;

    template<typename T, typename ManagedMemory> struct managed_unique_ptr;
    template<typename T, typename D> 
      void swap(unique_ptr< T, D > & x, unique_ptr< T, D > & y);
    template<typename T1, typename D1, typename T2, typename D2> 
      bool operator==(const unique_ptr< T1, D1 > & x, 
                      const unique_ptr< T2, D2 > & y);
    template<typename T1, typename D1, typename T2, typename D2> 
      bool operator!=(const unique_ptr< T1, D1 > & x, 
                      const unique_ptr< T2, D2 > & y);
    template<typename T1, typename D1, typename T2, typename D2> 
      bool operator<(const unique_ptr< T1, D1 > & x, 
                     const unique_ptr< T2, D2 > & y);
    template<typename T1, typename D1, typename T2, typename D2> 
      bool operator<=(const unique_ptr< T1, D1 > & x, 
                      const unique_ptr< T2, D2 > & y);
    template<typename T1, typename D1, typename T2, typename D2> 
      bool operator>(const unique_ptr< T1, D1 > & x, 
                     const unique_ptr< T2, D2 > & y);
    template<typename T1, typename D1, typename T2, typename D2> 
      bool operator>=(const unique_ptr< T1, D1 > & x, 
                      const unique_ptr< T2, D2 > & y);
    template<typename T, typename ManagedMemory> 
      managed_unique_ptr< T, ManagedMemory >::type 
      make_managed_unique_ptr(T *, ManagedMemory &);
  }
}

Describes the smart pointer weak_ptr.

namespace boost {
  namespace interprocess {
    template<typename T, typename A, typename D> class weak_ptr;

    template<typename T, typename ManagedMemory> struct managed_weak_ptr;
    template<typename T, typename A, typename D, typename U, typename A2, 
             typename D2> 
      bool operator<(weak_ptr< T, A, D > const & a, 
                     weak_ptr< U, A2, D2 > const & b);
    template<typename T, typename A, typename D> 
      void swap(weak_ptr< T, A, D > & a, weak_ptr< T, A, D > & b);
    template<typename T, typename ManagedMemory> 
      managed_weak_ptr< T, ManagedMemory >::type 
      make_managed_weak_ptr(T *, ManagedMemory &);
  }
}

This file defines basic_bufferbuf, basic_ibufferstream, basic_obufferstream, and basic_bufferstream classes. These classes represent streamsbufs and streams whose sources or destinations are fixed size character buffers.

namespace boost {
  namespace interprocess {
    template<typename CharT, typename CharTraits> class basic_bufferbuf;
    template<typename CharT, typename CharTraits> class basic_ibufferstream;
    template<typename CharT, typename CharTraits> class basic_obufferstream;
    template<typename CharT, typename CharTraits> class basic_bufferstream;

    typedef basic_bufferbuf< char > bufferbuf;
    typedef basic_bufferstream< char > bufferstream;
    typedef basic_ibufferstream< char > ibufferstream;
    typedef basic_obufferstream< char > obufferstream;
    typedef basic_bufferbuf< wchar_t > wbufferbuf;
    typedef basic_bufferstream< wchar_t > wbufferstream;
    typedef basic_ibufferstream< wchar_t > wibufferstream;
    typedef basic_obufferstream< wchar_t > wobufferstream;
  }
}

This file defines basic_vectorbuf, basic_ivectorstream, basic_ovectorstream, and basic_vectorstreamclasses. These classes represent streamsbufs and streams whose sources or destinations are STL-like vectors that can be swapped with external vectors to avoid unnecessary allocations/copies.

namespace boost {
  namespace interprocess {
    template<typename CharVector, typename CharTraits> class basic_vectorbuf;
    template<typename CharVector, typename CharTraits> class std;
    template<typename CharVector, typename CharTraits> class basic_vectorstream;
  }
}

Describes a class that wraps file locking capabilities.

namespace boost {
  namespace interprocess {
    class file_lock;
  }
}
namespace boost {
  namespace interprocess {
    class barrier;
  }
}

Describes process-shared variables interprocess_condition class

namespace boost {
  namespace interprocess {
    class interprocess_condition;
  }
  namespace posix_time {
  }
}

Describes a mutex class that can be placed in memory shared by several processes.

namespace boost {
  namespace interprocess {
    class interprocess_mutex;
  }
}

Describes interprocess_recursive_mutex and shared_recursive_try_mutex classes

namespace boost {
  namespace interprocess {
    class interprocess_recursive_mutex;
  }
}

Describes a interprocess_semaphore class for inter-process synchronization

namespace boost {
  namespace interprocess {
    class interprocess_semaphore;
  }
}

Describes interprocess_upgradable_mutex class

namespace boost {
  namespace interprocess {
    class interprocess_upgradable_mutex;
  }
}

Describes the lock options with associated with interprocess_mutex lock constructors.

namespace boost {
  namespace interprocess {
    struct defer_lock_type;
    struct try_to_lock_type;
    struct accept_ownership_type;

    static const defer_lock_type defer_lock;
    static const try_to_lock_type try_to_lock;
    static const accept_ownership_type accept_ownership;
  }
  namespace posix_time {
  }
}

Describes a shared interprocess_mutex family fit algorithm used to allocate objects in shared memory.

namespace boost {
  namespace interprocess {
    struct mutex_family;
    struct null_mutex_family;
  }
}

Describes process-shared variables interprocess_condition class

namespace boost {
  namespace interprocess {
    class named_condition;
  }
}

Describes a named mutex class for inter-process synchronization

namespace boost {
  namespace interprocess {
    class named_mutex;
  }
}

Describes a named named_recursive_mutex class for inter-process synchronization

namespace boost {
  namespace interprocess {
    class named_recursive_mutex;
  }
}

Describes a named semaphore class for inter-process synchronization

namespace boost {
  namespace interprocess {
    class named_semaphore;
  }
}

Describes a named upgradable mutex class for inter-process synchronization

namespace boost {
  namespace interprocess {
    class named_upgradable_mutex;
  }
}

Describes null_mutex classes

namespace boost {
  namespace interprocess {
    class null_mutex;
  }
  namespace posix_time {
  }
}

Describes the scoped_lock class.

namespace boost {
  namespace interprocess {
    template<typename Mutex> class scoped_lock;
  }
}

Describes the upgradable_lock class that serves to acquire the upgradable lock of a mutex.

namespace boost {
  namespace interprocess {
    template<typename SharableMutex> class sharable_lock;
  }
}

Describes the upgradable_lock class that serves to acquire the upgradable lock of a mutex.

namespace boost {
  namespace interprocess {
    template<typename UpgradableMutex> class upgradable_lock;
  }
}

Describes a class representing a native windows shared memory.

namespace boost {
  namespace interprocess {
    class windows_shared_memory;
  }
}

Describes a class representing a xsi key type.

namespace boost {
  namespace interprocess {
    class xsi_key;
  }
}

Describes a class representing a native xsi shared memory.

namespace boost {
  namespace interprocess {
    class xsi_shared_memory;
  }
}

PrevUpHomeNext