Joaquín Mª López Muñoz <joaquin <at> tid.es> writes:
[solution]
Unfortunately your solution does not work for tuples. The following code fails with a 10-page error message with gcc: #include <boost/tuple/tuple.hpp> #include <boost/multi_index_container.hpp> #include <boost/multi_index/sequenced_index.hpp> #include <boost/multi_index/key_extractors.hpp> namespace bm = ::boost::multi_index; template <int I> struct tuple_t_extractor { typedef std::string const & result_type; template <typename Tuple> result_type operator()(Tuple const & t) const { return boost::get<I>(t); // return t.get<I>(); // fails, too } }; class C { typedef boost::tuple<std::string, std::string> data_t; typedef bm::multi_index_container <data_t, bm::indexed_by <bm::sequenced<>, bm::ordered_unique<tuple_t_extractor<0> > > > storage_t; storage_t storage_; }; int main() { C c; }