
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