[tuples] sorting vector of boost-tuples

Hi, Don't know whether this is a boost-thing or C++ ... hope to put the problem the right way. Anyway, I have a tuple: //! tuple of <marker id, r2, allele> typedef boost::tuple<std::string, double, char> Proxy; and a map like //! map of <marker id, <vector of Proxies> > typedef std::map<std::string, std::vector<Proxy> > ProxyLT; Now, ProxyLT proxies; proxy = boost::tuple<std::string, double, char>(some string id, some double, some character); // pushing this tuple into the map/vector construct proxies[some other string id].push_back(proxy); And now I would like to sort these vectors within the map vector by vector according to the double in the tuple. For this I have the function (within a header file): inline bool proxy_gt(Proxy first, Proxy second) { return (first.get<1>() > second.get<1>()); } and then the actual sorting: for (yamas::ProxyLT::iterator pit = proxies.begin(); pit != proxies.end(); pit++) { sort((*pit).second.begin(), (*pit).second.end(), proxy_gt); } Problem is that g++ keeps telling me /usr/include/c++/4.4/bits/stl_heap.h:180: error: must use '.*' or '->*' to call pointer-to-member function in '__comp (...)', e.g. '(... ->* __comp) (...)' when 'sort' is called. Whatever I do to the inline function - I cannot solve this problem. Any hints? TIA Cheers Christian
participants (1)
-
Christian Meesters