
Still having a little teething trouble with multi_index_container. This code, #include <string> #include <boost/multi_index_container.hpp> #include <boost/multi_index/ordered_index.hpp> #include <boost/multi_index/identity.hpp> #include <boost/multi_index/member.hpp> using namespace boost; using namespace boost :: multi_index; struct Employee { int id; std :: string name; }; bool operator < ( Employee const & l, Employee const & r ) { return l.id < r.id; } int main( ) { typedef multi_index_container< Employee, indexed_by< ordered_unique<identity<Employee> >, ordered_non_unique<member<Employee, std :: string, & Employee :: name> > >
EmployeeSet;
Employee employees[ ] = { { 1, "Adam" }, { 2, "Craig" }, { 3, "Brian" }, { 4, "Dave" }, }; // EmployeeSet eSet( employees, employees + sizeof( employees ) / sizeof( Employee ) ); EmployeeSet eSet; std :: copy( employees, employees + sizeof( employees ) / sizeof( Employee ), std :: back_inserter( eSet ) ); return 0; } Gives me an error stating there is no push_back method on the container. /usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/stl_iterator.h:364: error: 'class boost::multi_index::multi_index_con tainer<Employee, boost::multi_index::indexed_by<boost::multi_index::ordered_unique<boost::multi_index::identity<Employee
, mpl_::na, mpl_::na>, boost::multi_index::ordered_non_unique<boost::multi_index::member<Employee, std::string, &Employ ee::name>, mpl_::na, mpl_::na>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na , mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, std::allocator<Employee> >' has no member named 'push_back'
is there something I'm missing out? Thanks, Rob.