In file included from /usr/include/c++/7/algorithm:62:0,
from /in/foo.cc:6:
/usr/include/c++/7/bits/stl_algo.h: In instantiation of 'void std::__sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = std::_Rb_tree_iterator<std::pair<const int, int> >; _Compare = __gnu_cxx::__ops::_Iter_comp_iter<bool (*)(const std::pair<int, int>&, const std::pair<int, int>&)>]':
/usr/include/c++/7/bits/stl_algo.h:4868:18: required from 'void std::sort(_RAIter, _RAIter, _Compare) [with _RAIter = std::_Rb_tree_iterator<std::pair<const int, int> >; _Compare = bool (*)(const std::pair<int, int>&, const std::pair<int, int>&)]'
/in/foo.cc:41:60: required from here
/usr/include/c++/7/bits/stl_algo.h:1969:22: error: no match for 'operator-' (operand types are 'std::_Rb_tree_iterator<std::pair<const int, int> >' and 'std::_Rb_tree_iterator<std::pair<const int, int> >')
std::__lg(__last - __first) * 2,
~~~~~~~^~~~~~~~~
In file included from /usr/include/c++/7/bits/stl_algobase.h:67:0,
from /usr/include/c++/7/bits/char_traits.h:39,
from /usr/include/c++/7/ios:40,
from /usr/include/c++/7/ostream:38,
from /usr/include/c++/7/iostream:39,
from /in/foo.cc:1:
/usr/include/c++/7/bits/stl_iterator.h:389:5: note: candidate: template<class _IteratorL, class _IteratorR> decltype ((__y.base() - __x.base())) std::operator-(const std::reverse_iterator<_Iterator>&, const std::reverse_iterator<_IteratorR>&)
operator-(const reverse_iterator<_IteratorL>& __x,
^~~~~~~~
/usr/include/c++/7/bits/stl_iterator.h:389:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/7/algorithm:62:0,
from /in/foo.cc:6:
/usr/include/c++/7/bits/stl_algo.h:1969:22: note: 'std::_Rb_tree_iterator<std::pair<const int, int> >' is not derived from 'const std::reverse_iterator<_Iterator>'
std::__lg(__last - __first) * 2,
~~~~~~~^~~~~~~~~
In file included from /usr/include/c++/7/bits/stl_algobase.h:67:0,
from /usr/include/c++/7/bits/char_traits.h:39,
from /usr/include/c++/7/ios:40,
from /usr/include/c++/7/ostream:38,
from /usr/include/c++/7/iostream:39,
from /in/foo.cc:1:
/usr/include/c++/7/bits/stl_iterator.h:1191:5: note: candidate: template<class _IteratorL, class _IteratorR> decltype ((__x.base() - __y.base())) std::operator-(const std::move_iterator<_IteratorL>&, const std::move_iterator<_IteratorR>&)
operator-(const move_iterator<_IteratorL>& __x,
^~~~~~~~
/usr/include/c++/7/bits/stl_iterator.h:1191:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/7/algorithm:62:0,
from /in/foo.cc:6:
/usr/include/c++/7/bits/stl_algo.h:1969:22: note: 'std::_Rb_tree_iterator<std::pair<const int, int> >' is not derived from 'const std::move_iterator<_IteratorL>'
std::__lg(__last - __first) * 2,
~~~~~~~^~~~~~~~~
In file included from /usr/include/c++/7/vector:65:0,
from /in/foo.cc:5:
/usr/include/c++/7/bits/stl_bvector.h:208:3: note: candidate: std::ptrdiff_t std::operator-(const std::_Bit_iterator_base&, const std::_Bit_iterator_base&)
operator-(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y)
^~~~~~~~
/usr/include/c++/7/bits/stl_bvector.h:208:3: note: no known conversion for argument 1 from 'std::_Rb_tree_iterator<std::pair<const int, int> >' to 'const std::_Bit_iterator_base&'