| Home | Libraries | People | FAQ | More

## Class template iset_index

boost::interprocess::iset_index

## Synopsis

    // In header: <boost/interprocess/indexes/iset_index.hpp>

    template<typename MapConfig>
    class iset_index {
    public:
      // types
      typedef index_type::iterator           iterator;
      typedef index_type::const_iterator     const_iterator;
      typedef index_type::insert_commit_data insert_commit_data;
      typedef index_type::value_type         value_type;

      // member classes/structs/unions

      // @ private:

      struct intrusive_key_value_less {

        // public member functions
        bool operator()(const intrusive_compare_key_type &, const value_type &) const;
        bool operator()(const value_type &, const intrusive_compare_key_type &) const;
      };

      // construct/copy/destruct
      iset_index(typename MapConfig::segment_manager_base *);

      // public member functions
      void reserve(std::size_t);
      void shrink_to_fit();
      iterator find(const intrusive_compare_key_type &);
      const_iterator find(const intrusive_compare_key_type &) const;
      std::pair< iterator, bool >
      insert_check(const intrusive_compare_key_type &, insert_commit_data &);
    };

## Description

Index type based in boost::intrusive::set. Just derives from boost::intrusive::set and defines the interface needed by managed memory segments

### `iset_index` public construct/copy/destruct

1.     iset_index(typename MapConfig::segment_manager_base *);

   Constructor. Takes a pointer to the segment manager. Can throw

### `iset_index` public member functions

1.     void reserve(std::size_t);

   This reserves memory to optimize the insertion of n elements in the index

2.     void shrink_to_fit();

   This frees all unnecessary memory.

3.     iterator find(const intrusive_compare_key_type & key);

4.     const_iterator find(const intrusive_compare_key_type & key) const;

5.     std::pair< iterator, bool >
       insert_check(const intrusive_compare_key_type & key,
                    insert_commit_data & commit_data);