...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
boost::histogram::multi_index<static_cast< std::size_t >(-1)>
// In header: <boost/histogram/multi_index.hpp> struct multi_index<static_cast< std::size_t >(-1)> { // types typedef axis::index_type value_type; typedef value_type * iterator; typedef const value_type * const_iterator; // construct/copy/destruct 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 &); multi_index(priv_tag, std::size_t); template<typename T, std::size_t... Ns> multi_index(const T &, mp11::index_sequence< Ns... >); // public static functions static multi_index create(std::size_t); // public member functions iterator begin() noexcept; iterator end() noexcept; const_iterator begin() const noexcept; const_iterator end() const noexcept; std::size_t size() const noexcept; };
multi_index
public
construct/copy/destructtemplate<class... Is> multi_index(axis::index_type i, Is... is);
template<class... Is> multi_index(const std::tuple< axis::index_type, Is... > & is);
template<typename Iterable> multi_index(const Iterable & is);
multi_index(priv_tag, std::size_t s);
template<typename T, std::size_t... Ns> multi_index(const T & is, mp11::index_sequence< Ns... >);