Well, I still having trouble to get mem_fun working. multi_index accept boost mem_fn?
Joaquin, the const still wont work. I stripped down the sample to this code:

[code]
#include <boost/multi_index_container.hpp>
#include
<boost/multi_index/mem_fun.hpp>
#include
<boost/multi_index/ordered_index.hpp>
 
using boost::multi_index_container;
using namespace ::boost::multi_index;
 
class Entry
{
private:
int size;
public:
Entry(int s) : size(s) {}
int getSize() const { return size; }
};
 
typedef multi_index_container<
Entry,
indexed_by<
ordered_non_unique<BOOST_MULTI_INDEX_MEM_FUN(Entry, int, getSize) > // line 23
>
> EntryCollection;
 
void main() {
EntryCollection entries;
Entry a(3);
entries.insert(a); // line 33
}
[/code]

With getSize() const; I get this error:
main.cpp:23: error: could not convert template argument `&Entry::getSize' to `int (Entry::*)()'
main.cpp:24: error: template argument 1 is invalid
main.cpp:25: error: template argument 1 is invalid
main.cpp:25: error: template argument 2 is invalid
main.cpp:25: error: ISO C++ forbids declaration of `EntryCollection' with no type
main.cpp: In function `int main(int, char**)':
main.cpp:33: error: `insert' has not been declared
main.cpp:33: error: request for member of non-aggregate type before '(' token
make.exe: *** [main.o] Error 1


On 12/7/06, "JOAQUIN LOPEZ MU?Z" <joaquin@tid.es> wrote:
----- Mensaje original -----
De: fungos <fungos@gmail.com>
Fecha: Viernes, Diciembre 8, 2006 1:02 am
Asunto: [Boost-users] Newbie to boost
Para: boost-users@lists.boost.org

> Hi, I need help to get started with boost, Im trying about some
> time to get a little project mine converted to use boost libs.
> My current project uses raw pointers and std::map. But I want to use
> shared_ptr and multi_index_container.
[...]
> See the sample here: http://rafb.net/paste/results/hfHOx934.html ,
> I have done this little sample to start understunding
> multi_index_container with classes using methods (mem_fun) as
> "selectors?". What is wrong with it?

Hello,

I can only give a cursory look to your code right now
(hope to have more stable Internet access in a couple of days),
but looks to me the problem with it is that the memfuns you're
using for key selection must be const, i.e.

  int getSize() const { return size; }
  etc.

HTH,

Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-users



--
Animal Frontline Liberation