Ovanes Markarian ha escrito:
On Mon, April 23, 2007 18:27, Joaquín Mª López Muñoz wrote:
Hello Ovanes, the issue of using a boost::tuple member as a key for a Boost.MultiIndex index has arisen in the past. Please read the following posts:
[...]
Thanks for the quick answer. If I correctly understand your answer, I will need either to use a custom key extractor, but then I can't make lookup by key like int or string, since I am forced to pass the whole tuple instance where the key is extracted. Is it true? Other solution would be to avoid using tuples...
No, no, if you use a custom key extractor like the tuple_member_extractor defined in one of the referred posts, you *can* use a string, an int or whatever the type of the tuple key member for doing lookup operations. This is what key extractors (predefine or custom) are for.
One more question, which might be offtopic. In my other scenario I use boost::hash to hash for string member of a pair, but the find fails if I pass a string const& and works if I pass const char*.
[...] I don't know what the problem is but it looks like there's more to it than you described. Please see the attached compilable snippet mimicking your scenario: it works OK for GCC 3.2, and it uses the string const& version of create_type(). Do you observe otherwise? When you say that the former fails: do you mean you get a compiler error? If so, what's it like?
Many thanks and
With Kind Regards,
Ovanes Markarian
Joaquín M López Muñoz Telefónica, Investigacion y Desarrollo