Boost logo

Boost Users :

Subject: Re: [Boost-users] multi-index/interprocess find key must be allocated in shared memory?
From: joaquin_at_[hidden]
Date: 2009-12-11 02:05:32


Jerry Hicks escribió:
> Hi,
> I have a multi_index set working nicely in shared memory but I'm
> trying to figure out how to search one of my indices without allocating
> the search key in shared memory.
>
> Assuming my index is based on a char_string (basic_string with a segment
> manager allocator), is there an easy way to perform a find() operation that
> can use a const char *key?
>

Special lookup operations (http://tinyurl.com/yarvxfe ) come to the
rescue. Write

x.find("whatever",special_char_string_compare());

with

struct special_char_string_compare
{
  bool operator()(const char_string& x,const char* y)const
  {
    return x<y;
  }
  bool operator()(const char* x,const char_string& y)const
  {
    return x<y;
  }
};

(warning, code above hasn't been compiled). Hope this helps,

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