In file included from /usr/include/c++/11/map:61,
from circle_selection.cpp:14:
/usr/include/c++/11/bits/stl_map.h: In instantiation of 'std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type& std::map<_Key, _Tp, _Compare, _Alloc>::operator[](std::map<_Key, _Tp, _Compare, _Alloc>::key_type&&) [with _Key = std::pair<int, int>; _Tp = std::vector<int>; _Compare = PairHasher; _Alloc = std::allocator<std::pair<const std::pair<int, int>, std::vector<int> > >; std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type = std::vector<int>; std::map<_Key, _Tp, _Compare, _Alloc>::key_type = std::pair<int, int>]':
circle_selection.cpp:65:63: required from here
/usr/include/c++/11/bits/stl_map.h:519:39: error: no match for call to '(std::map<std::pair<int, int>, std::vector<int>, PairHasher>::key_compare {aka PairHasher}) (std::map<std::pair<int, int>, std::vector<int>, PairHasher>::key_type&, const std::pair<int, int>&)'
519 | if (__i == end() || key_comp()(__k, (*__i).first))
| ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
circle_selection.cpp:33:21: note: candidate: 'std::size_t PairHasher::operator()(const std::pair<int, int>&) const'
33 | std::size_t operator() (const std::pair<int,int>& p) const {
| ^~~~~~~~
circle_selection.cpp:33:21: note: candidate expects 1 argument, 2 provided
In file included from /usr/include/c++/11/set:60,
from circle_selection.cpp:13:
/usr/include/c++/11/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_lower_bound(std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Link_type, std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Base_ptr, const _Key&) [with _Key = std::pair<int, int>; _Val = std::pair<const std::pair<int, int>, std::vector<int> >; _KeyOfValue = std::_Select1st<std::pair<const std::pair<int, int>, std::vector<int> > >; _Compare = PairHasher; _Alloc = std::allocator<std::pair<const std::pair<int, int>, std::vector<int> > >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator = std::_Rb_tree<std::pair<int, int>, std::pair<const std::pair<int, int>, std::vector<int> >, std::_Select1st<std::pair<const std::pair<int, int>, std::vector<int> > >, PairHasher, std::allocator<std::pair<const std::pair<int, int>, std::vector<int> > > >::iterator; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Link_type = std::_Rb_tree_node<std::pair<const std::pair<int, int>, std::vector<int> > >*; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Base_ptr = std::_Rb_tree_node_base*]':
/usr/include/c++/11/bits/stl_tree.h:1270:30: required from 'std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::lower_bound(const key_type&) [with _Key = std::pair<int, int>; _Val = std::pair<const std::pair<int, int>, std::vector<int> >; _KeyOfValue = std::_Select1st<std::pair<const std::pair<int, int>, std::vector<int> > >; _Compare = PairHasher; _Alloc = std::allocator<std::pair<const std::pair<int, int>, std::vector<int> > >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator = std::_Rb_tree<std::pair<int, int>, std::pair<const std::pair<int, int>, std::vector<int> >, std::_Select1st<std::pair<const std::pair<int, int>, std::vector<int> > >, PairHasher, std::allocator<std::pair<const std::pair<int, int>, std::vector<int> > > >::iterator; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::key_type = std::pair<int, int>]'
/usr/include/c++/11/bits/stl_map.h:1259:32: required from 'std::map<_Key, _Tp, _Compare, _Alloc>::iterator std::map<_Key, _Tp, _Compare, _Alloc>::lower_bound(const key_type&) [with _Key = std::pair<int, int>; _Tp = std::vector<int>; _Compare = PairHasher; _Alloc = std::allocator<std::pair<const std::pair<int, int>, std::vector<int> > >; std::map<_Key, _Tp, _Compare, _Alloc>::iterator = std::_Rb_tree<std::pair<int, int>, std::pair<const std::pair<int, int>, std::vector<int> >, std::_Select1st<std::pair<const std::pair<int, int>, std::vector<int> > >, PairHasher, std::allocator<std::pair<const std::pair<int, int>, std::vector<int> > > >::iterator; std::map<_Key, _Tp, _Compare, _Alloc>::key_type = std::pair<int, int>]'
/usr/include/c++/11/bits/stl_map.h:517:28: required from 'std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type& std::map<_Key, _Tp, _Compare, _Alloc>::operator[](std::map<_Key, _Tp, _Compare, _Alloc>::key_type&&) [with _Key = std::pair<int, int>; _Tp = std::vector<int>; _Compare = PairHasher; _Alloc = std::allocator<std::pair<const std::pair<int, int>, std::vector<int> > >; std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type = std::vector<int>; std::map<_Key, _Tp, _Compare, _Alloc>::key_type = std::pair<int, int>]'
circle_selection.cpp:65:63: required from here
/usr/include/c++/11/bits/stl_tree.h:1905:36: error: no match for call to '(PairHasher) (const std::pair<int, int>&, const std::pair<int, int>&)'
1905 | if (!_M_impl._M_key_compare(_S_key(__x), __k))
| ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
circle_selection.cpp:33:21: note: candidate: 'std::size_t PairHasher::operator()(const std::pair<int, int>&) const'
33 | std::size_t operator() (const std::pair<int,int>& p) const {
| ^~~~~~~~
circle_selection.cpp:33:21: note: candidate expects 1 argument, 2 provided
In file included from /usr/include/c++/11/set:60,
from circle_selection.cpp:13:
/usr/include/c++/11/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 = std::pair<int, int>; _Val = std::pair<const std::pair<int, int>, std::vector<int> >; _KeyOfValue = std::_Select1st<std::pair<const std::pair<int, int>, std::vector<int> > >; _Compare = PairHasher; _Alloc = std::allocator<std::pair<const std::pair<int, int>, std::vector<int> > >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Const_Link_type = const std::_Rb_tree_node<std::pair<const std::pair<int, int>, std::vector<int> > >*]':
/usr/include/c++/11/bits/stl_tree.h:1905:36: required from 'std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_lower_bound(std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Link_type, std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Base_ptr, const _Key&) [with _Key = std::pair<int, int>; _Val = std::pair<const std::pair<int, int>, std::vector<int> >; _KeyOfValue = std::_Select1st<std::pair<const std::pair<int, int>, std::vector<int> > >; _Compare = PairHasher; _Alloc = std::allocator<std::pair<const std::pair<int, int>, std::vector<int> > >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator = std::_Rb_tree<std::pair<int, int>, std::pair<const std::pair<int, int>, std::vector<int> >, std::_Select1st<std::pair<const std::pair<int, int>, std::vector<int> > >, PairHasher, std::allocator<std::pair<const std::pair<int, int>, std::vector<int> > > >::iterator; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Link_type = std::_Rb_tree_node<std::pair<const std::pair<int, int>, std::vector<int> > >*; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Base_ptr = std::_Rb_tree_node_base*]'
/usr/include/c++/11/bits/stl_tree.h:1270:30: required from 'std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::lower_bound(const key_type&) [with _Key = std::pair<int, int>; _Val = std::pair<const std::pair<int, int>, std::vector<int> >; _KeyOfValue = std::_Select1st<std::pair<const std::pair<int, int>, std::vector<int> > >; _Compare = PairHasher; _Alloc = std::allocator<std::pair<const std::pair<int, int>, std::vector<int> > >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator = std::_Rb_tree<std::pair<int, int>, std::pair<const std::pair<int, int>, std::vector<int> >, std::_Select1st<std::pair<const std::pair<int, int>, std::vector<int> > >, PairHasher, std::allocator<std::pair<const std::pair<int, int>, std::vector<int> > > >::iterator; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::key_type = std::pair<int, int>]'
/usr/include/c++/11/bits/stl_map.h:1259:32: required from 'std::map<_Key, _Tp, _Compare, _Alloc>::iterator std::map<_Key, _Tp, _Compare, _Alloc>::lower_bound(const key_type&) [with _Key = std::pair<int, int>; _Tp = std::vector<int>; _Compare = PairHasher; _Alloc = std::allocator<std::pair<const std::pair<int, int>, std::vector<int> > >; std::map<_Key, _Tp, _Compare, _Alloc>::iterator = std::_Rb_tree<std::pair<int, int>, std::pair<const std::pair<int, int>, std::vector<int> >, std::_Select1st<std::pair<const std::pair<int, int>, std::vector<int> > >, PairHasher, std::allocator<std::pair<const std::pair<int, int>, std::vector<int> > > >::iterator; std::map<_Key, _Tp, _Compare, _Alloc>::key_type = std::pair<int, int>]'
/usr/include/c++/11/bits/stl_map.h:517:28: required from 'std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type& std::map<_Key, _Tp, _Compare, _Alloc>::operator[](std::map<_Key, _Tp, _Compare, _Alloc>::key_type&&) [with _Key = std::pair<int, int>; _Tp = std::vector<int>; _Compare = PairHasher; _Alloc = std::allocator<std::pair<const std::pair<int, int>, std::vector<int> > >; std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type = std::vector<int>; std::map<_Key, _Tp, _Compare, _Alloc>::key_type = std::pair<int, int>]'
circle_selection.cpp:65:63: required from here
/usr/include/c++/11/bits/stl_tree.h:762:23: error: static assertion failed: comparison object must be invocable with two arguments of key type
762 | static_assert(__is_invocable<_Compare&, const _Key&, const _Key&>{},
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/11/bits/stl_tree.h:762:23: note: 'std::__is_invocable<PairHasher&, const std::pair<int, int>&, const std::pair<int, int>&>{}' evaluates to false