In file included from /usr/include/c++/4.8/string:48:0, from /usr/include/c++/4.8/bits/locale_classes.h:40, from /usr/include/c++/4.8/bits/ios_base.h:41, from /usr/include/c++/4.8/ios:42, from /usr/include/c++/4.8/ostream:38, from /usr/include/c++/4.8/iostream:39, from search.cpp:4: /usr/include/c++/4.8/bits/stl_function.h: In instantiation of ‘bool std::less<_Tp>::operator()(const _Tp&, const _Tp&) const [with _Tp = Unistring]’: /usr/include/c++/4.8/bits/stl_tree.h:1321:11: required from ‘std::pair std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_get_insert_unique_pos(const key_type&) [with _Key = Unistring; _Val = Unistring; _KeyOfValue = std::_Identity; _Compare = std::less; _Alloc = std::allocator; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::key_type = Unistring]’ /usr/include/c++/4.8/bits/stl_tree.h:1374:47: required from ‘std::pair, bool> std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_insert_unique(_Arg&&) [with _Arg = const Unistring&; _Key = Unistring; _Val = Unistring; _KeyOfValue = std::_Identity; _Compare = std::less; _Alloc = std::allocator]’ /usr/include/c++/4.8/bits/stl_set.h:463:29: required from ‘std::pair, _Compare, typename _Alloc::rebind<_Key>::other>::const_iterator, bool> std::set<_Key, _Compare, _Alloc>::insert(const value_type&) [with _Key = Unistring; _Compare = std::less; _Alloc = std::allocator; typename std::_Rb_tree<_Key, _Key, std::_Identity<_Key>, _Compare, typename _Alloc::rebind<_Key>::other>::const_iterator = std::_Rb_tree_const_iterator; std::set<_Key, _Compare, _Alloc>::value_type = Unistring]’ search.cpp:63:17: required from here /usr/include/c++/4.8/bits/stl_function.h:235:20: error: no match for ‘operator<’ (operand types are ‘const Unistring’ and ‘const Unistring’) { return __x < __y; } ^ /usr/include/c++/4.8/bits/stl_function.h:235:20: note: candidates are: In file included from /usr/include/c++/4.8/bits/stl_algobase.h:64:0, from /usr/include/c++/4.8/bits/char_traits.h:39, from /usr/include/c++/4.8/ios:40, from /usr/include/c++/4.8/ostream:38, from /usr/include/c++/4.8/iostream:39, from search.cpp:4: /usr/include/c++/4.8/bits/stl_pair.h:220:5: note: template constexpr bool std::operator<(const std::pair<_T1, _T2>&, const std::pair<_T1, _T2>&) operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) ^ /usr/include/c++/4.8/bits/stl_pair.h:220:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/4.8/string:48:0, from /usr/include/c++/4.8/bits/locale_classes.h:40, from /usr/include/c++/4.8/bits/ios_base.h:41, from /usr/include/c++/4.8/ios:42, from /usr/include/c++/4.8/ostream:38, from /usr/include/c++/4.8/iostream:39, from search.cpp:4: /usr/include/c++/4.8/bits/stl_function.h:235:20: note: ‘const Unistring’ is not derived from ‘const std::pair<_T1, _T2>’ { return __x < __y; } ^ In file included from /usr/include/c++/4.8/bits/stl_algobase.h:67:0, from /usr/include/c++/4.8/bits/char_traits.h:39, from /usr/include/c++/4.8/ios:40, from /usr/include/c++/4.8/ostream:38, from /usr/include/c++/4.8/iostream:39, from search.cpp:4: /usr/include/c++/4.8/bits/stl_iterator.h:297:5: note: template bool std::operator<(const std::reverse_iterator<_Iterator>&, const std::reverse_iterator<_Iterator>&) operator<(const reverse_iterator<_Iterator>& __x, ^ /usr/include/c++/4.8/bits/stl_iterator.h:297:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/4.8/string:48:0, from /usr/include/c++/4.8/bits/locale_classes.h:40, from /usr/include/c++/4.8/bits/ios_base.h:41, from /usr/include/c++/4.8/ios:42, from /usr/include/c++/4.8/ostream:38, from /usr/include/c++/4.8/iostream:39, from search.cpp:4: /usr/include/c++/4.8/bits/stl_function.h:235:20: note: ‘const Unistring’ is not derived from ‘const std::reverse_iterator<_Iterator>’ { return __x < __y; } ^ In file included from /usr/include/c++/4.8/bits/stl_algobase.h:67:0, from /usr/include/c++/4.8/bits/char_traits.h:39, from /usr/include/c++/4.8/ios:40, from /usr/include/c++/4.8/ostream:38, from /usr/include/c++/4.8/iostream:39, from search.cpp:4: /usr/include/c++/4.8/bits/stl_iterator.h:347:5: note: template bool std::operator<(const std::reverse_iterator<_Iterator>&, const std::reverse_iterator<_IteratorR>&) operator<(const reverse_iterator<_IteratorL>& __x, ^ /usr/include/c++/4.8/bits/stl_iterator.h:347:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/4.8/string:48:0, from /usr/include/c++/4.8/bits/locale_classes.h:40, from /usr/include/c++/4.8/bits/ios_base.h:41, from /usr/include/c++/4.8/ios:42, from /usr/include/c++/4.8/ostream:38, from /usr/include/c++/4.8/iostream:39, from search.cpp:4: /usr/include/c++/4.8/bits/stl_function.h:235:20: note: ‘const Unistring’ is not derived from ‘const std::reverse_iterator<_Iterator>’ { return __x < __y; } ^ In file included from /usr/include/c++/4.8/bits/stl_algobase.h:67:0, from /usr/include/c++/4.8/bits/char_traits.h:39, from /usr/include/c++/4.8/ios:40, from /usr/include/c++/4.8/ostream:38, from /usr/include/c++/4.8/iostream:39, from search.cpp:4: /usr/include/c++/4.8/bits/stl_iterator.h:1055:5: note: template bool std::operator<(const std::move_iterator<_Iterator>&, const std::move_iterator<_IteratorR>&) operator<(const move_iterator<_IteratorL>& __x, ^ /usr/include/c++/4.8/bits/stl_iterator.h:1055:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/4.8/string:48:0, from /usr/include/c++/4.8/bits/locale_classes.h:40, from /usr/include/c++/4.8/bits/ios_base.h:41, from /usr/include/c++/4.8/ios:42, from /usr/include/c++/4.8/ostream:38, from /usr/include/c++/4.8/iostream:39, from search.cpp:4: /usr/include/c++/4.8/bits/stl_function.h:235:20: note: ‘const Unistring’ is not derived from ‘const std::move_iterator<_Iterator>’ { return __x < __y; } ^ In file included from /usr/include/c++/4.8/bits/stl_algobase.h:67:0, from /usr/include/c++/4.8/bits/char_traits.h:39, from /usr/include/c++/4.8/ios:40, from /usr/include/c++/4.8/ostream:38, from /usr/include/c++/4.8/iostream:39, from search.cpp:4: /usr/include/c++/4.8/bits/stl_iterator.h:1061:5: note: template bool std::operator<(const std::move_iterator<_Iterator>&, const std::move_iterator<_Iterator>&) operator<(const move_iterator<_Iterator>& __x, ^ /usr/include/c++/4.8/bits/stl_iterator.h:1061:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/4.8/string:48:0, from /usr/include/c++/4.8/bits/locale_classes.h:40, from /usr/include/c++/4.8/bits/ios_base.h:41, from /usr/include/c++/4.8/ios:42, from /usr/include/c++/4.8/ostream:38, from /usr/include/c++/4.8/iostream:39, from search.cpp:4: /usr/include/c++/4.8/bits/stl_function.h:235:20: note: ‘const Unistring’ is not derived from ‘const std::move_iterator<_Iterator>’ { return __x < __y; } ^ In file included from /usr/include/c++/4.8/string:52:0, from /usr/include/c++/4.8/bits/locale_classes.h:40, from /usr/include/c++/4.8/bits/ios_base.h:41, from /usr/include/c++/4.8/ios:42, from /usr/include/c++/4.8/ostream:38, from /usr/include/c++/4.8/iostream:39, from search.cpp:4: /usr/include/c++/4.8/bits/basic_string.h:2569:5: note: template bool std::operator<(const std::basic_string<_CharT, _Traits, _Alloc>&, const std::basic_string<_CharT, _Traits, _Alloc>&) operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs, ^ /usr/include/c++/4.8/bits/basic_string.h:2569:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/4.8/string:48:0, from /usr/include/c++/4.8/bits/locale_classes.h:40, from /usr/include/c++/4.8/bits/ios_base.h:41, from /usr/include/c++/4.8/ios:42, from /usr/include/c++/4.8/ostream:38, from /usr/include/c++/4.8/iostream:39, from search.cpp:4: /usr/include/c++/4.8/bits/stl_function.h:235:20: note: ‘const Unistring’ is not derived from ‘const std::basic_string<_CharT, _Traits, _Alloc>’ { return __x < __y; } ^ In file included from /usr/include/c++/4.8/string:52:0, from /usr/include/c++/4.8/bits/locale_classes.h:40, from /usr/include/c++/4.8/bits/ios_base.h:41, from /usr/include/c++/4.8/ios:42, from /usr/include/c++/4.8/ostream:38, from /usr/include/c++/4.8/iostream:39, from search.cpp:4: /usr/include/c++/4.8/bits/basic_string.h:2581:5: note: template bool std::operator<(const std::basic_string<_CharT, _Traits, _Alloc>&, const _CharT*) operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs, ^ /usr/include/c++/4.8/bits/basic_string.h:2581:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/4.8/string:48:0, from /usr/include/c++/4.8/bits/locale_classes.h:40, from /usr/include/c++/4.8/bits/ios_base.h:41, from /usr/include/c++/4.8/ios:42, from /usr/include/c++/4.8/ostream:38, from /usr/include/c++/4.8/iostream:39, from search.cpp:4: /usr/include/c++/4.8/bits/stl_function.h:235:20: note: ‘const Unistring’ is not derived from ‘const std::basic_string<_CharT, _Traits, _Alloc>’ { return __x < __y; } ^ In file included from /usr/include/c++/4.8/string:52:0, from /usr/include/c++/4.8/bits/locale_classes.h:40, from /usr/include/c++/4.8/bits/ios_base.h:41, from /usr/include/c++/4.8/ios:42, from /usr/include/c++/4.8/ostream:38, from /usr/include/c++/4.8/iostream:39, from search.cpp:4: /usr/include/c++/4.8/bits/basic_string.h:2593:5: note: template bool std::operator<(const _CharT*, const std::basic_string<_CharT, _Traits, _Alloc>&) operator<(const _CharT* __lhs, ^ /usr/include/c++/4.8/bits/basic_string.h:2593:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/4.8/string:48:0, from /usr/include/c++/4.8/bits/locale_classes.h:40, from /usr/include/c++/4.8/bits/ios_base.h:41, from /usr/include/c++/4.8/ios:42, from /usr/include/c++/4.8/ostream:38, from /usr/include/c++/4.8/iostream:39, from search.cpp:4: /usr/include/c++/4.8/bits/stl_function.h:235:20: note: mismatched types ‘const _CharT*’ and ‘Unistring’ { return __x < __y; } ^ In file included from /usr/include/c++/4.8/set:60:0, from search.cpp:6: /usr/include/c++/4.8/bits/stl_tree.h:914:5: note: template bool std::operator<(const std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>&, const std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>&) operator<(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, ^ /usr/include/c++/4.8/bits/stl_tree.h:914:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/4.8/string:48:0, from /usr/include/c++/4.8/bits/locale_classes.h:40, from /usr/include/c++/4.8/bits/ios_base.h:41, from /usr/include/c++/4.8/ios:42, from /usr/include/c++/4.8/ostream:38, from /usr/include/c++/4.8/iostream:39, from search.cpp:4: /usr/include/c++/4.8/bits/stl_function.h:235:20: note: ‘const Unistring’ is not derived from ‘const std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>’ { return __x < __y; } ^ In file included from /usr/include/c++/4.8/set:61:0, from search.cpp:6: /usr/include/c++/4.8/bits/stl_set.h:769:5: note: template bool std::operator<(const std::set<_Key, _Compare, _Alloc>&, const std::set<_Key, _Compare, _Alloc>&) operator<(const set<_Key, _Compare, _Alloc>& __x, ^ /usr/include/c++/4.8/bits/stl_set.h:769:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/4.8/string:48:0, from /usr/include/c++/4.8/bits/locale_classes.h:40, from /usr/include/c++/4.8/bits/ios_base.h:41, from /usr/include/c++/4.8/ios:42, from /usr/include/c++/4.8/ostream:38, from /usr/include/c++/4.8/iostream:39, from search.cpp:4: /usr/include/c++/4.8/bits/stl_function.h:235:20: note: ‘const Unistring’ is not derived from ‘const std::set<_Key, _Compare, _Alloc>’ { return __x < __y; } ^ In file included from /usr/include/c++/4.8/set:62:0, from search.cpp:6: /usr/include/c++/4.8/bits/stl_multiset.h:754:5: note: template bool std::operator<(const std::multiset<_Key, _Compare, _Alloc>&, const std::multiset<_Key, _Compare, _Alloc>&) operator<(const multiset<_Key, _Compare, _Alloc>& __x, ^ /usr/include/c++/4.8/bits/stl_multiset.h:754:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/4.8/string:48:0, from /usr/include/c++/4.8/bits/locale_classes.h:40, from /usr/include/c++/4.8/bits/ios_base.h:41, from /usr/include/c++/4.8/ios:42, from /usr/include/c++/4.8/ostream:38, from /usr/include/c++/4.8/iostream:39, from search.cpp:4: /usr/include/c++/4.8/bits/stl_function.h:235:20: note: ‘const Unistring’ is not derived from ‘const std::multiset<_Key, _Compare, _Alloc>’ { return __x < __y; } ^ In file included from /usr/include/c++/4.8/tuple:39:0, from /usr/include/c++/4.8/bits/stl_map.h:63, from /usr/include/c++/4.8/map:61, from search.cpp:7: /usr/include/c++/4.8/array:238:5: note: template bool std::operator<(const std::array<_Tp, _Nm>&, const std::array<_Tp, _Nm>&) operator<(const array<_Tp, _Nm>& __a, const array<_Tp, _Nm>& __b) ^ /usr/include/c++/4.8/array:238:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/4.8/string:48:0, from /usr/include/c++/4.8/bits/locale_classes.h:40, from /usr/include/c++/4.8/bits/ios_base.h:41, from /usr/include/c++/4.8/ios:42, from /usr/include/c++/4.8/ostream:38, from /usr/include/c++/4.8/iostream:39, from search.cpp:4: /usr/include/c++/4.8/bits/stl_function.h:235:20: note: ‘const Unistring’ is not derived from ‘const std::array<_Tp, _Nm>’ { return __x < __y; } ^ In file included from /usr/include/c++/4.8/bits/stl_map.h:63:0, from /usr/include/c++/4.8/map:61, from search.cpp:7: /usr/include/c++/4.8/tuple:822:5: note: template constexpr bool std::operator<(const std::tuple<_Args1 ...>&, const std::tuple<_Args2 ...>&) operator<(const tuple<_TElements...>& __t, ^ /usr/include/c++/4.8/tuple:822:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/4.8/string:48:0, from /usr/include/c++/4.8/bits/locale_classes.h:40, from /usr/include/c++/4.8/bits/ios_base.h:41, from /usr/include/c++/4.8/ios:42, from /usr/include/c++/4.8/ostream:38, from /usr/include/c++/4.8/iostream:39, from search.cpp:4: /usr/include/c++/4.8/bits/stl_function.h:235:20: note: ‘const Unistring’ is not derived from ‘const std::tuple<_Args1 ...>’ { return __x < __y; } ^ In file included from /usr/include/c++/4.8/map:61:0, from search.cpp:7: /usr/include/c++/4.8/bits/stl_map.h:978:5: note: template bool std::operator<(const std::map<_Key, _Tp, _Compare, _Alloc>&, const std::map<_Key, _Tp, _Compare, _Alloc>&) operator<(const map<_Key, _Tp, _Compare, _Alloc>& __x, ^ /usr/include/c++/4.8/bits/stl_map.h:978:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/4.8/string:48:0, from /usr/include/c++/4.8/bits/locale_classes.h:40, from /usr/include/c++/4.8/bits/ios_base.h:41, from /usr/include/c++/4.8/ios:42, from /usr/include/c++/4.8/ostream:38, from /usr/include/c++/4.8/iostream:39, from search.cpp:4: /usr/include/c++/4.8/bits/stl_function.h:235:20: note: ‘const Unistring’ is not derived from ‘const std::map<_Key, _Tp, _Compare, _Alloc>’ { return __x < __y; } ^ In file included from /usr/include/c++/4.8/map:62:0, from search.cpp:7: /usr/include/c++/4.8/bits/stl_multimap.h:880:5: note: template bool std::operator<(const std::multimap<_Key, _Tp, _Compare, _Alloc>&, const std::multimap<_Key, _Tp, _Compare, _Alloc>&) operator<(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, ^ /usr/include/c++/4.8/bits/stl_multimap.h:880:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/4.8/string:48:0, from /usr/include/c++/4.8/bits/locale_classes.h:40, from /usr/include/c++/4.8/bits/ios_base.h:41, from /usr/include/c++/4.8/ios:42, from /usr/include/c++/4.8/ostream:38, from /usr/include/c++/4.8/iostream:39, from search.cpp:4: /usr/include/c++/4.8/bits/stl_function.h:235:20: note: ‘const Unistring’ is not derived from ‘const std::multimap<_Key, _Tp, _Compare, _Alloc>’ { return __x < __y; } ^ In file included from /usr/include/c++/4.8/vector:64:0, from ../../include/string/unistring.h:5, from search.cpp:8: /usr/include/c++/4.8/bits/stl_vector.h:1420:5: note: template bool std::operator<(const std::vector<_Tp, _Alloc>&, const std::vector<_Tp, _Alloc>&) operator<(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) ^ /usr/include/c++/4.8/bits/stl_vector.h:1420:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/4.8/string:48:0, from /usr/include/c++/4.8/bits/locale_classes.h:40, from /usr/include/c++/4.8/bits/ios_base.h:41, from /usr/include/c++/4.8/ios:42, from /usr/include/c++/4.8/ostream:38, from /usr/include/c++/4.8/iostream:39, from search.cpp:4: /usr/include/c++/4.8/bits/stl_function.h:235:20: note: ‘const Unistring’ is not derived from ‘const std::vector<_Tp, _Alloc>’ { return __x < __y; } ^