Boost logo

Boost Users :

From: Soni, Aashit (aashit.Soni_at_[hidden])
Date: 2006-02-08 01:09:14


Hi Joaquín, Éric
 
I appreciate your response, Before that I got some workaround from the web and the snippet I have written to port it to my existing project worked until I face real problem.
 
My observation is like when I have Ordered_index with std::string, the code I have written compiles really well and works also. But when I remove this ordered_index, the code does not compile.
 
Here is the code that compiles: <<Multi_index_container_working.txt>>
 
Here is the code that does not compile: <<Multi_index_container_not_working.txt>>
 
 
If you see the difference I have only two lines commented.
 
... //ordered_non_unique<tag<name>,BOOST_MULTI_INDEX_MEMBER(employee,std::string,name) >, ....
 
.... //typedef boost::multi_index::index<employee_set,name>::type employee_set_by_name;...

 
Same boost::multi_index::index<employee_set,ssnumber>::type is not working if the std::string is not indexed.
 
 
right now I am working with dummy string. But I need to scrap the string and have some real code in place that should go into my project. If I am not able to solve this. I can not use multi_index_container and it is real loss for me.
 
 
Help always appreciated. Thanks in advance.
 
aashit
 
ps: please consider these txt files are cpp files.
 
 
 

________________________________

From: boost-users-bounces_at_[hidden] [mailto:boost-users-bounces_at_[hidden]] On Behalf Of Joaquín Mª López Muñoz
Sent: Tuesday, February 07, 2006 9:39 PM
To: boost-users_at_[hidden]
Subject: Re: [Boost-users] Multi_index Container

Hello Aashit,

"Soni, Aashit" ha escrito:

        Hi all,

        I am newbie to Boost library. I am trying to use multi_index_container library in my project. The problem I have at my hands needs One Hash index and one ordered indexed. I refer the Boost tutorial and Advance topic and tried to write the following snippet. But when I compiled it gives compilation error. I searched lot of different options and tried to fix it but I could not able to do it so.

        If you can guide me how to shut the compilation errors it will be great. If anyone of you is having any decent example tried out for Hash having ordered indexes please send it to me so I can go through and build my logic on top of that....

        Code Follows.

        I am using MSVC SP6 on Win XP .

This is primarily the problem: To make MSVC 6.0 compile a program
using Boost.MultiIndex you've got to observe some stricter rules than
in the normal case. Please read the section on MSVC 6.0 at

http://boost.org/libs/multi_index/doc/compiler_specifics.html#msvc_60
  

                typedef employee_set::index<employee_set,ssnumber>::type employee_set_by_ssn;

Problem #1: MSVC 6.0 does not support the "index" nested typedef. Instead, write

        typedef index<employee_set,ssnumber>::type employee_set_by_ssn;

                employee_set_by_ssn& ssn_index=es.get<2>();

Problem #2: MSVC 6.0 does not support the get member function, use the global
version instead:

        employee_set_by_ssn& ssn_index=get<2>(es);

With these changes, and also tweaking /Zm and /ZI (as explained in the
aforementioned section), your program compiles. Bare in mind that your
compiler is very old and broken and making Boost.MultiIndex work for it
can be quite a challenge, although it is doable. Good luck with your project,

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






Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net