Boost logo

Boost Users :

Subject: Re: [Boost-users] Multi index assistance
From: Joaquin M Lopez Munoz (joaquin_at_[hidden])
Date: 2010-08-16 12:51:52

Etienne Philip Pretorius <icewolfhunter <at>> writes:

> Hello List,
> I have defined a multi_index container, but I am not able to populate
> the container. Is there something that I have missed?
> struct element {
> [...]
> };
> typedef boost::multi_index_container<
> element,
> [...]
> > matrix_t;
> Then I define:
> matrix_t m;
> element e(1,2,3);
> m.insert <-- not valid

The correct syntax is


The following complete program compiles succesfully,
code is identical to yours except that I used boost::uint8_t
instead of std::uint8_t, which does not exist in my platform:

  #include <boost/multi_index_container.hpp>
  #include <boost/multi_index/ordered_index.hpp>
  #include <boost/multi_index/member.hpp>
  #include <boost/cstdint.hpp>

  using namespace boost::multi_index;

  struct element{
      boost::uint8_t x,
      boost::uint8_t y,
      boost::uint8_t z
    ) : x(x),y(y),z(z) {};
    boost::uint8_t x,y,z;

  typedef multi_index_container<
        member<element, boost::uint8_t, &element::x>
        member<element, boost::uint8_t, &element::y>
        member<element, boost::uint8_t, &element::z>
> matrix_t;

  int main()
    matrix_t m;
    element e(1,2,3);


Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo

Boost-users list run by williamkempf at, kalb at, bjorn.karlsson at, gregod at, wekempf at