Ostatnio próbowałem wykorzystać obiekt krotki, jako klucz std::map. Jak się okazało kompilator zaprotestował
#include <string>
#include <map>
#include <boost/tuple/tuple.hpp>
int main()
{
std::map<boost::tuple<int, bool, std::string>, int> m;
boost::tuple<int, bool, std::string> key(2, false, "asdf");
m[key] = 44;
return 0;
}
Protest - kompilator skarży się, że boost::tuple (nasz klucz) nie posiada operatora less.
/usr/include/c++/4.6/bits/stl_function.h:236:22: error: no match for ‘operator<’ in ‘__x < __y’
Po zbadaniu problemu okazało się, że trzeba do-includować poniższą linijkę.
#include <boost/tuple/tuple_comparison.hpp>
Brak komentarzy:
Prześlij komentarz