| Home | Libraries | People | FAQ | More

## Struct template multi_index

boost::histogram::multi_index — Holder for multiple axis indices.

## Synopsis

    // In header: <boost/histogram/multi_index.hpp>

    template<std::size_t Size>
    struct multi_index {
      // types
      typedef axis::index_type   value_type;
      typedef value_type *       iterator;
      typedef const value_type * const_iterator;

      // public static functions
      static multi_index create(std::size_t);
      static std::size_t size() noexcept;

      // public member functions
      template<class... Is> multi_index(axis::index_type, Is...);
      template<class... Is>
        multi_index(const std::tuple< axis::index_type, Is... > &);
      template<typename Iterable> multi_index(const Iterable &);
      iterator begin() noexcept;
      iterator end() noexcept;
      const_iterator begin() const noexcept;
      const_iterator end() const noexcept;
    };

## Description

Adapts external iterable, tuple, or explicit list of indices to the same representation.

### `multi_index` public static functions

1.     static multi_index create(std::size_t s);

2.     static std::size_t size() noexcept;

### `multi_index` public member functions

1.     template<class... Is> multi_index(axis::index_type i, Is... is);

2.     template<class... Is>
         multi_index(const std::tuple< axis::index_type, Is... > & is);

3.     template<typename Iterable> multi_index(const Iterable & is);

4.     iterator begin() noexcept;

5.     iterator end() noexcept;

6.     const_iterator begin() const noexcept;

7.     const_iterator end() const noexcept;