In file included from /usr/include/c++/9/map:60,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:81,
from feast.cpp:1:
/usr/include/c++/9/bits/stl_tree.h: In instantiation of 'std::pair<std::_Rb_tree_node_base*, std::_Rb_tree_node_base*> std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_get_insert_unique_pos(const key_type&) [with _Key = block*; _Val = block*; _KeyOfValue = std::_Identity<block*>; _Compare = compare; _Alloc = std::allocator<block*>; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::key_type = block*]':
/usr/include/c++/9/bits/stl_tree.h:2148:4: required from 'std::pair<std::_Rb_tree_iterator<_Val>, bool> std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_insert_unique(_Arg&&) [with _Arg = block* const&; _Key = block*; _Val = block*; _KeyOfValue = std::_Identity<block*>; _Compare = compare; _Alloc = std::allocator<block*>]'
/usr/include/c++/9/bits/stl_set.h:511:48: required from 'std::pair<typename std::_Rb_tree<_Key, _Key, std::_Identity<_Tp>, _Compare, typename __gnu_cxx::__alloc_traits<_Alloc>::rebind<_Key>::other>::const_iterator, bool> std::set<_Key, _Compare, _Alloc>::insert(const value_type&) [with _Key = block*; _Compare = compare; _Alloc = std::allocator<block*>; typename std::_Rb_tree<_Key, _Key, std::_Identity<_Tp>, _Compare, typename __gnu_cxx::__alloc_traits<_Alloc>::rebind<_Key>::other>::const_iterator = std::_Rb_tree_const_iterator<block*>; std::set<_Key, _Compare, _Alloc>::value_type = block*]'
feast.cpp:44:35: required from here
/usr/include/c++/9/bits/stl_tree.h:2095:11: error: no match for call to '(compare) (block* const&, block* const&)'
2095 | __comp = _M_impl._M_key_compare(__k, _S_key(__x));
feast.cpp:17:10: note: candidate: 'bool compare::operator()(const block*&, const block*&)' <near match>
17 | bool operator ()
| ^~~~~~~~
feast.cpp:17:10: note: conversion of argument 2 would be ill-formed:
In file included from /usr/include/c++/9/map:60,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:81,
from feast.cpp:1:
/usr/include/c++/9/bits/stl_tree.h:2095:11: error: cannot bind non-const lvalue reference of type 'const block*&' to an rvalue of type 'const block*'
2095 | __comp = _M_impl._M_key_compare(__k, _S_key(__x));
/usr/include/c++/9/bits/stl_tree.h:2106:7: error: no match for call to '(compare) (block* const&, block* const&)'
2106 | if (_M_impl._M_key_compare(_S_key(__j._M_node), __k))
| ^~
feast.cpp:17:10: note: candidate: 'bool compare::operator()(const block*&, const block*&)' <near match>
17 | bool operator ()
| ^~~~~~~~
feast.cpp:17:10: note: conversion of argument 2 would be ill-formed:
In file included from /usr/include/c++/9/map:60,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:81,
from feast.cpp:1:
/usr/include/c++/9/bits/stl_tree.h:2106:7: error: cannot bind non-const lvalue reference of type 'const block*&' to an rvalue of type 'const block*'
2106 | if (_M_impl._M_key_compare(_S_key(__j._M_node), __k))
| ^~
/usr/include/c++/9/bits/stl_tree.h: In instantiation of 'std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_insert_(std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Base_ptr, std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Base_ptr, _Arg&&, _NodeGen&) [with _Arg = block* const&; _NodeGen = std::_Rb_tree<block*, block*, std::_Identity<block*>, compare, std::allocator<block*> >::_Alloc_node; _Key = block*; _Val = block*; _KeyOfValue = std::_Identity<block*>; _Compare = compare; _Alloc = std::allocator<block*>; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator = std::_Rb_tree_iterator<block*>; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Base_ptr = std::_Rb_tree_node_base*]':
/usr/include/c++/9/bits/stl_tree.h:2153:11: required from 'std::pair<std::_Rb_tree_iterator<_Val>, bool> std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_insert_unique(_Arg&&) [with _Arg = block* const&; _Key = block*; _Val = block*; _KeyOfValue = std::_Identity<block*>; _Compare = compare; _Alloc = std::allocator<block*>]'
/usr/include/c++/9/bits/stl_set.h:511:48: required from 'std::pair<typename std::_Rb_tree<_Key, _Key, std::_Identity<_Tp>, _Compare, typename __gnu_cxx::__alloc_traits<_Alloc>::rebind<_Key>::other>::const_iterator, bool> std::set<_Key, _Compare, _Alloc>::insert(const value_type&) [with _Key = block*; _Compare = compare; _Alloc = std::allocator<block*>; typename std::_Rb_tree<_Key, _Key, std::_Identity<_Tp>, _Compare, typename __gnu_cxx::__alloc_traits<_Alloc>::rebind<_Key>::other>::const_iterator = std::_Rb_tree_const_iterator<block*>; std::set<_Key, _Compare, _Alloc>::value_type = block*]'
feast.cpp:44:35: required from here
/usr/include/c++/9/bits/stl_tree.h:1807:10: error: no match for call to '(compare) (block* const&, block* const&)'
1806 | bool __insert_left = (__x != 0 || __p == _M_end()
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1807 | || _M_impl._M_key_compare(_KeyOfValue()(__v),
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1808 | _S_key(__p)));
| ~~~~~~~~~~~~~
feast.cpp:17:10: note: candidate: 'bool compare::operator()(const block*&, const block*&)' <near match>
17 | bool operator ()
| ^~~~~~~~
feast.cpp:17:10: note: conversion of argument 2 would be ill-formed:
In file included from /usr/include/c++/9/map:60,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:81,
from feast.cpp:1:
/usr/include/c++/9/bits/stl_tree.h:1807:10: error: cannot bind non-const lvalue reference of type 'const block*&' to an rvalue of type 'const block*'
1806 | bool __insert_left = (__x != 0 || __p == _M_end()
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1807 | || _M_impl._M_key_compare(_KeyOfValue()(__v),
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1808 | _S_key(__p)));
| ~~~~~~~~~~~~~
/usr/include/c++/9/bits/stl_tree.h: In instantiation of 'std::pair<std::_Rb_tree_iterator<_Val>, std::_Rb_tree_iterator<_Val> > std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::equal_range(const _Key&) [with _Key = block*; _Val = block*; _KeyOfValue = std::_Identity<block*>; _Compare = compare; _Alloc = std::allocator<block*>]':
/usr/include/c++/9/bits/stl_tree.h:2534:32: required from 'std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::size_type std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::erase(const _Key&) [with _Key = block*; _Val = block*; _KeyOfValue = std::_Identity<block*>; _Compare = compare; _Alloc = std::allocator<block*>; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::size_type = long unsigned int]'
/usr/include/c++/9/bits/stl_set.h:685:30: required from 'std::set<_Key, _Compare, _Alloc>::size_type std::set<_Key, _Compare, _Alloc>::erase(const key_type&) [with _Key = block*; _Compare = compare; _Alloc = std::allocator<block*>; std::set<_Key, _Compare, _Alloc>::size_type = long unsigned int; std::set<_Key, _Compare, _Alloc>::key_type = block*]'
feast.cpp:54:24: required from here
/usr/include/c++/9/bits/stl_tree.h:1997:4: error: no match for call to '(compare) (block* const&, block* const&)'
1997 | if (_M_impl._M_key_compare(_S_key(__x), __k))
| ^~
feast.cpp:17:10: note: candidate: 'bool compare::operator()(const block*&, const block*&)' <near match>
17 | bool operator ()
| ^~~~~~~~
feast.cpp:17:10: note: conversion of argument 2 would be ill-formed:
In file included from /usr/include/c++/9/map:60,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:81,
from feast.cpp:1:
/usr/include/c++/9/bits/stl_tree.h:1997:4: error: cannot bind non-const lvalue reference of type 'const block*&' to an rvalue of type 'const block*'
1997 | if (_M_impl._M_key_compare(_S_key(__x), __k))
| ^~
/usr/include/c++/9/bits/stl_tree.h:1999:9: error: no match for call to '(compare) (block* const&, block* const&)'
1999 | else if (_M_impl._M_key_compare(__k, _S_key(__x)))
| ^~
feast.cpp:17:10: note: candidate: 'bool compare::operator()(const block*&, const block*&)' <near match>
17 | bool operator ()
| ^~~~~~~~
feast.cpp:17:10: note: conversion of argument 2 would be ill-formed:
In file included from /usr/include/c++/9/map:60,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:81,
from feast.cpp:1:
/usr/include/c++/9/bits/stl_tree.h:1999:9: error: cannot bind non-const lvalue reference of type 'const block*&' to an rvalue of type 'const block*'
1999 | else if (_M_impl._M_key_compare(__k, _S_key(__x)))
| ^~
/usr/include/c++/9/bits/stl_tree.h: In instantiation of 'static const _Key& std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_S_key(std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Const_Link_type) [with _Key = block*; _Val = block*; _KeyOfValue = std::_Identity<block*>; _Compare = compare; _Alloc = std::allocator<block*>; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Const_Link_type = const std::_Rb_tree_node<block*>*]':
/usr/include/c++/9/bits/stl_tree.h:2095:47: required from 'std::pair<std::_Rb_tree_node_base*, std::_Rb_tree_node_base*> std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_get_insert_unique_pos(const key_type&) [with _Key = block*; _Val = block*; _KeyOfValue = std::_Identity<block*>; _Compare = compare; _Alloc = std::allocator<block*>; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::key_type = block*]'
/usr/include/c++/9/bits/stl_tree.h:2148:4: required from 'std::pair<std::_Rb_tree_iterator<_Val>, bool> std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_insert_unique(_Arg&&) [with _Arg = block* const&; _Key = block*; _Val = block*; _KeyOfValue = std::_Identity<block*>; _Compare = compare; _Alloc = std::allocator<block*>]'
/usr/include/c++/9/bits/stl_set.h:511:48: required from 'std::pair<typename std::_Rb_tree<_Key, _Key, std::_Identity<_Tp>, _Compare, typename __gnu_cxx::__alloc_traits<_Alloc>::rebind<_Key>::other>::const_iterator, bool> std::set<_Key, _Compare, _Alloc>::insert(const value_type&) [with _Key = block*; _Compare = compare; _Alloc = std::allocator<block*>; typename std::_Rb_tree<_Key, _Key, std::_Identity<_Tp>, _Compare, typename __gnu_cxx::__alloc_traits<_Alloc>::rebind<_Key>::other>::const_iterator = std::_Rb_tree_const_iterator<block*>; std::set<_Key, _Compare, _Alloc>::value_type = block*]'
feast.cpp:44:35: required from here
/usr/include/c++/9/bits/stl_tree.h:772:16: error: static assertion failed: comparison object must be invocable with two arguments of key type
772 | static_assert(__is_invocable<_Compare&, const _Key&, const _Key&>{},
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~