[multi_index] How to use a class instead of a struct with the boost:multi_index_container? (addendum)
Hi All,
Since I posted the previous message, I made some experiments. First, I
changed the employee from struct to class:
From
struct employee
{
int id;
std::string name;
int age;
employee(int id_,std::string name_,int
age_):id(id_),name(name_),age(age_){}
friend std::ostream& operator<<(std::ostream& os,const employee& e)
{
os<
employee_set;
So, I had to change the scope of index class members to public, and it
worked:
class employee
{
public:
int id;
std::string name;
int age;
employee(int id_,std::string name_,int
age_):id(id_),name(name_),age(age_){}
friend std::ostream& operator<<(std::ostream& os,const employee& e)
{
os<
jamaj escribió:
Hi All,
Since I posted the previous message, I made some experiments. First, I changed the employee from struct to class:
[...]
I got some errors
/home/jamaj/src/wxTestes/multiindexsample/main.cpp|31|error: ‘int employee::id’ is private
[...] So, I had to change the scope of index class members to public, and it worked:
[...]
The question is: is there any other way to do it without exposing all class members?
You can expose the data you want to index by through some member function, check the examples at: http://www.boost.org/libs/multi_index/doc/tutorial/key_extraction.html#const... HTH, Joaquín M López Muñoz Telefónica, Investigación y Desarrollo
participants (2)
-
jamaj
-
joaquin@tid.es