Hi :

I'm just starting to use boost utility library and it seems very promising.  I am trying to define a new multi_index type and gcc it's giving me error messages.

First I properly added the includes for boost::multi_index :

#include <boost/multi_index_container.hpp>
#include <boost/multi_index/mem_fun.hpp>
#include <boost/multi_index/hashed_index.hpp>

then the includes for "Item" and "ObjectId" declarations:

#include "Item.h"

following that appears this:

typedef multi_index_container<
          Item*,
          indexed_by<           
            hashed_unique<mem_fun<Item, ObjectId, &Item::getId> >
          >
        > ItemsContainer;

When I try to compile this code gcc reports the following errors:

error: 'mem_fun' was not declared in this scope
error: template argument 1 is invalid
error: type/value mismatch at argument 3 in template parameter list for 'template<class Arg1, class Arg2, class Arg3, class Arg4> struct boost::multi_index::hashed_unique'
error:   expected a type, got '&emedia::lumiere::Item::getId'
error: template argument 1 is invalid
error: template argument 2 is invalid
error: expected unqualified-id before '>' token

It seems that I'm forgetting something. It's very strange because I all ready compilled this code in another project but I can't find any difference with this one.

Any idea.

Thanks in advance.

René