In file included from /usr/include/c++/12/string:48,
from /usr/include/c++/12/bits/locale_classes.h:40,
from /usr/include/c++/12/bits/ios_base.h:41,
from /usr/include/c++/12/ios:42,
from /usr/include/c++/12/istream:38,
from /usr/include/c++/12/fstream:38,
from /in/foo.cc:1:
/usr/include/c++/12/bits/stl_function.h: In instantiation of 'bool std::less<_Tp>::operator()(const _Tp&, const _Tp&) const [with _Tp = heap]':
/usr/include/c++/12/bits/predefined_ops.h:196:23: required from 'bool __gnu_cxx::__ops::_Iter_comp_val<_Compare>::operator()(_Iterator, _Value&) [with _Iterator = __gnu_cxx::__normal_iterator<heap*, std::vector<heap, std::allocator<heap> > >; _Value = heap; _Compare = std::less<heap>]'
/usr/include/c++/12/bits/stl_heap.h:140:48: required from 'void std::__push_heap(_RandomAccessIterator, _Distance, _Distance, _Tp, _Compare&) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<heap*, vector<heap, allocator<heap> > >; _Distance = long int; _Tp = heap; _Compare = __gnu_cxx::__ops::_Iter_comp_val<less<heap> >]'
/usr/include/c++/12/bits/stl_heap.h:216:23: required from 'void std::push_heap(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<heap*, vector<heap, allocator<heap> > >; _Compare = less<heap>]'
/usr/include/c++/12/bits/stl_queue.h:749:16: required from 'void std::priority_queue<_Tp, _Sequence, _Compare>::push(value_type&&) [with _Tp = heap; _Sequence = std::vector<heap, std::allocator<heap> >; _Compare = std::less<heap>; value_type = heap]'
/in/foo.cc:108:13: required from here
/usr/include/c++/12/bits/stl_function.h:408:20: error: no match for 'operator<' (operand types are 'const heap' and 'const heap')
408 | { return __x < __y; }
| ~~~~^~~~~
In file included from /usr/include/c++/12/string:47:
/usr/include/c++/12/bits/stl_iterator.h:451:5: note: candidate: 'template<class _Iterator> bool std::operator<(const reverse_iterator<_Iterator>&, const reverse_iterator<_Iterator>&)'
451 | operator<(const reverse_iterator<_Iterator>& __x,
| ^~~~~~~~
/usr/include/c++/12/bits/stl_iterator.h:451:5: note: template argument deduction/substitution failed:
/usr/include/c++/12/bits/stl_function.h:408:20: note: 'const heap' is not derived from 'const std::reverse_iterator<_Iterator>'
408 | { return __x < __y; }
| ~~~~^~~~~
/usr/include/c++/12/bits/stl_iterator.h:496:5: note: candidate: 'template<class _IteratorL, class _IteratorR> bool std::operator<(const reverse_iterator<_Iterator>&, const reverse_iterator<_IteratorR>&)'
496 | operator<(const reverse_iterator<_IteratorL>& __x,
| ^~~~~~~~
/usr/include/c++/12/bits/stl_iterator.h:496:5: note: template argument deduction/substitution failed:
/usr/include/c++/12/bits/stl_function.h:408:20: note: 'const heap' is not derived from 'const std::reverse_iterator<_Iterator>'
408 | { return __x < __y; }
| ~~~~^~~~~
/usr/include/c++/12/bits/stl_iterator.h:1683:5: note: candidate: 'template<class _IteratorL, class _IteratorR> bool std::operator<(const move_iterator<_IteratorL>&, const move_iterator<_IteratorR>&)'
1683 | operator<(const move_iterator<_IteratorL>& __x,
| ^~~~~~~~
/usr/include/c++/12/bits/stl_iterator.h:1683:5: note: template argument deduction/substitution failed:
/usr/include/c++/12/bits/stl_function.h:408:20: note: 'const heap' is not derived from 'const std::move_iterator<_IteratorL>'
408 | { return __x < __y; }
| ~~~~^~~~~
/usr/include/c++/12/bits/stl_iterator.h:1748:5: note: candidate: 'template<class _Iterator> bool std::operator<(const move_iterator<_IteratorL>&, const move_iterator<_IteratorL>&)'
1748 | operator<(const move_iterator<_Iterator>& __x,
| ^~~~~~~~
/usr/include/c++/12/bits/stl_iterator.h:1748:5: note: template argument deduction/substitution failed:
/usr/include/c++/12/bits/stl_function.h:408:20: note: 'const heap' is not derived from 'const std::move_iterator<_IteratorL>'
408 | { return __x < __y; }
| ~~~~^~~~~