heap.cpp: In instantiation of ‘void Heap<T, C>::shiftDown(size_t) [with T = int; C = std::less<int>; size_t = long unsigned int]’:
heap.cpp:15:4: required from ‘void Heap<T, C>::build_heap() [with T = int; C = std::less<int>]’
heap.cpp:10:3: required from ‘Heap<T, C>::Heap(std::vector<_Tp>*) [with T = int; C = std::less<int>]’
heap.cpp:49:34: required from here
heap.cpp:32:9: error: no matching function for call to ‘std::less<int>::less(__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type&, __gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type&)’
32 | if( C(heap->at(child+1),heap->at(child)) ){
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/string:48,
from /usr/include/c++/9/bits/locale_classes.h:40,
from /usr/include/c++/9/bits/ios_base.h:41,
from /usr/include/c++/9/ios:42,
from /usr/include/c++/9/istream:38,
from /usr/include/c++/9/sstream:38,
from /usr/include/c++/9/complex:45,
from /usr/include/c++/9/ccomplex:39,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:54,
from heap.cpp:1:
/usr/include/c++/9/bits/stl_function.h:381:12: note: candidate: ‘constexpr std::less<int>::less()’
381 | struct less : public binary_function<_Tp, _Tp, bool>
| ^~~~
/usr/include/c++/9/bits/stl_function.h:381:12: note: candidate expects 0 arguments, 2 provided
/usr/include/c++/9/bits/stl_function.h:381:12: note: candidate: ‘constexpr std::less<int>::less(const std::less<int>&)’
/usr/include/c++/9/bits/stl_function.h:381:12: note: candidate expects 1 argument, 2 provided
/usr/include/c++/9/bits/stl_function.h:381:12: note: candidate: ‘constexpr std::less<int>::less(std::less<int>&&)’
/usr/include/c++/9/bits/stl_function.h:381:12: note: candidate expects 1 argument, 2 provided
heap.cpp:36:8: error: no matching function for call to ‘std::less<int>::less(__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type&, __gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type&)’
36 | if( C(heap->at(child), heap->at(i)) ){
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/string:48,
from /usr/include/c++/9/bits/locale_classes.h:40,
from /usr/include/c++/9/bits/ios_base.h:41,
from /usr/include/c++/9/ios:42,
from /usr/include/c++/9/istream:38,
from /usr/include/c++/9/sstream:38,
from /usr/include/c++/9/complex:45,
from /usr/include/c++/9/ccomplex:39,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:54,
from heap.cpp:1:
/usr/include/c++/9/bits/stl_function.h:381:12: note: candidate: ‘constexpr std::less<int>::less()’
381 | struct less : public binary_function<_Tp, _Tp, bool>
| ^~~~
/usr/include/c++/9/bits/stl_function.h:381:12: note: candidate expects 0 arguments, 2 provided
/usr/include/c++/9/bits/stl_function.h:381:12: note: candidate: ‘constexpr std::less<int>::less(const std::less<int>&)’
/usr/include/c++/9/bits/stl_function.h:381:12: note: candidate expects 1 argument, 2 provided
/usr/include/c++/9/bits/stl_function.h:381:12: note: candidate: ‘constexpr std::less<int>::less(std::less<int>&&)’
/usr/include/c++/9/bits/stl_function.h:381:12: note: candidate expects 1 argument, 2 provided
aGVhcC5jcHA6IEluIGluc3RhbnRpYXRpb24gb2Yg4oCYdm9pZCBIZWFwPFQsIEM+OjpzaGlmdERvd24oc2l6ZV90KSBbd2l0aCBUID0gaW50OyBDID0gc3RkOjpsZXNzPGludD47IHNpemVfdCA9IGxvbmcgdW5zaWduZWQgaW50XeKAmToKaGVhcC5jcHA6MTU6NDogICByZXF1aXJlZCBmcm9tIOKAmHZvaWQgSGVhcDxULCBDPjo6YnVpbGRfaGVhcCgpIFt3aXRoIFQgPSBpbnQ7IEMgPSBzdGQ6Omxlc3M8aW50Pl3igJkKaGVhcC5jcHA6MTA6MzogICByZXF1aXJlZCBmcm9tIOKAmEhlYXA8VCwgQz46OkhlYXAoc3RkOjp2ZWN0b3I8X1RwPiopIFt3aXRoIFQgPSBpbnQ7IEMgPSBzdGQ6Omxlc3M8aW50Pl3igJkKaGVhcC5jcHA6NDk6MzQ6ICAgcmVxdWlyZWQgZnJvbSBoZXJlCmhlYXAuY3BwOjMyOjk6IGVycm9yOiBubyBtYXRjaGluZyBmdW5jdGlvbiBmb3IgY2FsbCB0byDigJhzdGQ6Omxlc3M8aW50Pjo6bGVzcyhfX2dudV9jeHg6Ol9fYWxsb2NfdHJhaXRzPHN0ZDo6YWxsb2NhdG9yPGludD4sIGludD46OnZhbHVlX3R5cGUmLCBfX2dudV9jeHg6Ol9fYWxsb2NfdHJhaXRzPHN0ZDo6YWxsb2NhdG9yPGludD4sIGludD46OnZhbHVlX3R5cGUmKeKAmQogICAzMiB8ICAgICBpZiggQyhoZWFwLT5hdChjaGlsZCsxKSxoZWFwLT5hdChjaGlsZCkpICl7CiAgICAgIHwgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC91c3IvaW5jbHVkZS9jKysvOS9zdHJpbmc6NDgsCiAgICAgICAgICAgICAgICAgZnJvbSAvdXNyL2luY2x1ZGUvYysrLzkvYml0cy9sb2NhbGVfY2xhc3Nlcy5oOjQwLAogICAgICAgICAgICAgICAgIGZyb20gL3Vzci9pbmNsdWRlL2MrKy85L2JpdHMvaW9zX2Jhc2UuaDo0MSwKICAgICAgICAgICAgICAgICBmcm9tIC91c3IvaW5jbHVkZS9jKysvOS9pb3M6NDIsCiAgICAgICAgICAgICAgICAgZnJvbSAvdXNyL2luY2x1ZGUvYysrLzkvaXN0cmVhbTozOCwKICAgICAgICAgICAgICAgICBmcm9tIC91c3IvaW5jbHVkZS9jKysvOS9zc3RyZWFtOjM4LAogICAgICAgICAgICAgICAgIGZyb20gL3Vzci9pbmNsdWRlL2MrKy85L2NvbXBsZXg6NDUsCiAgICAgICAgICAgICAgICAgZnJvbSAvdXNyL2luY2x1ZGUvYysrLzkvY2NvbXBsZXg6MzksCiAgICAgICAgICAgICAgICAgZnJvbSAvdXNyL2luY2x1ZGUveDg2XzY0LWxpbnV4LWdudS9jKysvOS9iaXRzL3N0ZGMrKy5oOjU0LAogICAgICAgICAgICAgICAgIGZyb20gaGVhcC5jcHA6MToKL3Vzci9pbmNsdWRlL2MrKy85L2JpdHMvc3RsX2Z1bmN0aW9uLmg6MzgxOjEyOiBub3RlOiBjYW5kaWRhdGU6IOKAmGNvbnN0ZXhwciBzdGQ6Omxlc3M8aW50Pjo6bGVzcygp4oCZCiAgMzgxIHwgICAgIHN0cnVjdCBsZXNzIDogcHVibGljIGJpbmFyeV9mdW5jdGlvbjxfVHAsIF9UcCwgYm9vbD4KICAgICAgfCAgICAgICAgICAgIF5+fn4KL3Vzci9pbmNsdWRlL2MrKy85L2JpdHMvc3RsX2Z1bmN0aW9uLmg6MzgxOjEyOiBub3RlOiAgIGNhbmRpZGF0ZSBleHBlY3RzIDAgYXJndW1lbnRzLCAyIHByb3ZpZGVkCi91c3IvaW5jbHVkZS9jKysvOS9iaXRzL3N0bF9mdW5jdGlvbi5oOjM4MToxMjogbm90ZTogY2FuZGlkYXRlOiDigJhjb25zdGV4cHIgc3RkOjpsZXNzPGludD46Omxlc3MoY29uc3Qgc3RkOjpsZXNzPGludD4mKeKAmQovdXNyL2luY2x1ZGUvYysrLzkvYml0cy9zdGxfZnVuY3Rpb24uaDozODE6MTI6IG5vdGU6ICAgY2FuZGlkYXRlIGV4cGVjdHMgMSBhcmd1bWVudCwgMiBwcm92aWRlZAovdXNyL2luY2x1ZGUvYysrLzkvYml0cy9zdGxfZnVuY3Rpb24uaDozODE6MTI6IG5vdGU6IGNhbmRpZGF0ZTog4oCYY29uc3RleHByIHN0ZDo6bGVzczxpbnQ+OjpsZXNzKHN0ZDo6bGVzczxpbnQ+JiYp4oCZCi91c3IvaW5jbHVkZS9jKysvOS9iaXRzL3N0bF9mdW5jdGlvbi5oOjM4MToxMjogbm90ZTogICBjYW5kaWRhdGUgZXhwZWN0cyAxIGFyZ3VtZW50LCAyIHByb3ZpZGVkCmhlYXAuY3BwOjM2Ojg6IGVycm9yOiBubyBtYXRjaGluZyBmdW5jdGlvbiBmb3IgY2FsbCB0byDigJhzdGQ6Omxlc3M8aW50Pjo6bGVzcyhfX2dudV9jeHg6Ol9fYWxsb2NfdHJhaXRzPHN0ZDo6YWxsb2NhdG9yPGludD4sIGludD46OnZhbHVlX3R5cGUmLCBfX2dudV9jeHg6Ol9fYWxsb2NfdHJhaXRzPHN0ZDo6YWxsb2NhdG9yPGludD4sIGludD46OnZhbHVlX3R5cGUmKeKAmQogICAzNiB8ICAgIGlmKCBDKGhlYXAtPmF0KGNoaWxkKSwgaGVhcC0+YXQoaSkpICl7CiAgICAgIHwgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC91c3IvaW5jbHVkZS9jKysvOS9zdHJpbmc6NDgsCiAgICAgICAgICAgICAgICAgZnJvbSAvdXNyL2luY2x1ZGUvYysrLzkvYml0cy9sb2NhbGVfY2xhc3Nlcy5oOjQwLAogICAgICAgICAgICAgICAgIGZyb20gL3Vzci9pbmNsdWRlL2MrKy85L2JpdHMvaW9zX2Jhc2UuaDo0MSwKICAgICAgICAgICAgICAgICBmcm9tIC91c3IvaW5jbHVkZS9jKysvOS9pb3M6NDIsCiAgICAgICAgICAgICAgICAgZnJvbSAvdXNyL2luY2x1ZGUvYysrLzkvaXN0cmVhbTozOCwKICAgICAgICAgICAgICAgICBmcm9tIC91c3IvaW5jbHVkZS9jKysvOS9zc3RyZWFtOjM4LAogICAgICAgICAgICAgICAgIGZyb20gL3Vzci9pbmNsdWRlL2MrKy85L2NvbXBsZXg6NDUsCiAgICAgICAgICAgICAgICAgZnJvbSAvdXNyL2luY2x1ZGUvYysrLzkvY2NvbXBsZXg6MzksCiAgICAgICAgICAgICAgICAgZnJvbSAvdXNyL2luY2x1ZGUveDg2XzY0LWxpbnV4LWdudS9jKysvOS9iaXRzL3N0ZGMrKy5oOjU0LAogICAgICAgICAgICAgICAgIGZyb20gaGVhcC5jcHA6MToKL3Vzci9pbmNsdWRlL2MrKy85L2JpdHMvc3RsX2Z1bmN0aW9uLmg6MzgxOjEyOiBub3RlOiBjYW5kaWRhdGU6IOKAmGNvbnN0ZXhwciBzdGQ6Omxlc3M8aW50Pjo6bGVzcygp4oCZCiAgMzgxIHwgICAgIHN0cnVjdCBsZXNzIDogcHVibGljIGJpbmFyeV9mdW5jdGlvbjxfVHAsIF9UcCwgYm9vbD4KICAgICAgfCAgICAgICAgICAgIF5+fn4KL3Vzci9pbmNsdWRlL2MrKy85L2JpdHMvc3RsX2Z1bmN0aW9uLmg6MzgxOjEyOiBub3RlOiAgIGNhbmRpZGF0ZSBleHBlY3RzIDAgYXJndW1lbnRzLCAyIHByb3ZpZGVkCi91c3IvaW5jbHVkZS9jKysvOS9iaXRzL3N0bF9mdW5jdGlvbi5oOjM4MToxMjogbm90ZTogY2FuZGlkYXRlOiDigJhjb25zdGV4cHIgc3RkOjpsZXNzPGludD46Omxlc3MoY29uc3Qgc3RkOjpsZXNzPGludD4mKeKAmQovdXNyL2luY2x1ZGUvYysrLzkvYml0cy9zdGxfZnVuY3Rpb24uaDozODE6MTI6IG5vdGU6ICAgY2FuZGlkYXRlIGV4cGVjdHMgMSBhcmd1bWVudCwgMiBwcm92aWRlZAovdXNyL2luY2x1ZGUvYysrLzkvYml0cy9zdGxfZnVuY3Rpb24uaDozODE6MTI6IG5vdGU6IGNhbmRpZGF0ZTog4oCYY29uc3RleHByIHN0ZDo6bGVzczxpbnQ+OjpsZXNzKHN0ZDo6bGVzczxpbnQ+JiYp4oCZCi91c3IvaW5jbHVkZS9jKysvOS9iaXRzL3N0bF9mdW5jdGlvbi5oOjM4MToxMjogbm90ZTogICBjYW5kaWRhdGUgZXhwZWN0cyAxIGFyZ3VtZW50LCAyIHByb3ZpZGVk