In file included from /in/driver/main.cpp:8:0:
/in/kdtree.hpp: In instantiation of 'static bool KDTree<std::tuple<_Elements ...>, ValueType>::compareKey(const Key&, const Key&, Compare) [with long unsigned int DIM = 0; Compare = std::greater<int>; ValueType = std::__cxx11::basic_string<char>; KeyTypes = {int, int, int}; KDTree<std::tuple<_Elements ...>, ValueType>::Key = std::tuple<int, int, int>]':
/in/kdtree.hpp:248:40: required from 'static KDTree<std::tuple<_Elements ...>, ValueType>::Node* KDTree<std::tuple<_Elements ...>, ValueType>::compareNode(KDTree<std::tuple<_Elements ...>, ValueType>::Node*, KDTree<std::tuple<_Elements ...>, ValueType>::Node*, Compare) [with long unsigned int DIM = 0; Compare = std::greater<int>; ValueType = std::__cxx11::basic_string<char>; KeyTypes = {int, int, int}]'
/in/kdtree.hpp:288:39: required from 'KDTree<std::tuple<_Elements ...>, ValueType>::Node* KDTree<std::tuple<_Elements ...>, ValueType>::findMax(KDTree<std::tuple<_Elements ...>, ValueType>::Node*) [with long unsigned int DIM_CMP = 0; long unsigned int DIM = 0; ValueType = std::__cxx11::basic_string<char>; KeyTypes = {int, int, int}]'
/in/kdtree.hpp:315:35: required from 'KDTree<std::tuple<_Elements ...>, ValueType>::Node* KDTree<std::tuple<_Elements ...>, ValueType>::findMaxDynamic(size_t) [with long unsigned int DIM = 0; ValueType = std::__cxx11::basic_string<char>; KeyTypes = {int, int, int}; size_t = long unsigned int]'
/in/kdtree.hpp:503:48: required from 'KDTree<std::tuple<_Elements ...>, ValueType>::Iterator KDTree<std::tuple<_Elements ...>, ValueType>::findMax(size_t) [with ValueType = std::__cxx11::basic_string<char>; KeyTypes = {int, int, int}; size_t = long unsigned int]'
/in/driver/main.cpp:87:46: required from here
/in/kdtree.hpp:229:23: error: no match for call to '(std::greater<int>) (const Key&, const Key&)'
return compare(a, b);
~~~~~~~^~~~~~
In file included from /usr/include/c++/7/string:48:0,
from /usr/include/c++/7/stdexcept:39,
from /in/kdtree.hpp:4,
from /in/driver/main.cpp:8:
/usr/include/c++/7/bits/stl_function.h:375:7: note: candidate: constexpr bool std::greater<_Tp>::operator()(const _Tp&, const _Tp&) const [with _Tp = int]
operator()(const _Tp& __x, const _Tp& __y) const
^~~~~~~~
/usr/include/c++/7/bits/stl_function.h:375:7: note: no known conversion for argument 1 from 'const Key {aka const std::tuple<int, int, int>}' to 'const int&'
In file included from /in/driver/main.cpp:8:0:
/in/kdtree.hpp: In instantiation of 'static bool KDTree<std::tuple<_Elements ...>, ValueType>::compareKey(const Key&, const Key&, Compare) [with long unsigned int DIM = 1; Compare = std::greater<int>; ValueType = std::__cxx11::basic_string<char>; KeyTypes = {int, int, int}; KDTree<std::tuple<_Elements ...>, ValueType>::Key = std::tuple<int, int, int>]':
/in/kdtree.hpp:248:40: required from 'static KDTree<std::tuple<_Elements ...>, ValueType>::Node* KDTree<std::tuple<_Elements ...>, ValueType>::compareNode(KDTree<std::tuple<_Elements ...>, ValueType>::Node*, KDTree<std::tuple<_Elements ...>, ValueType>::Node*, Compare) [with long unsigned int DIM = 1; Compare = std::greater<int>; ValueType = std::__cxx11::basic_string<char>; KeyTypes = {int, int, int}]'
/in/kdtree.hpp:288:39: required from 'KDTree<std::tuple<_Elements ...>, ValueType>::Node* KDTree<std::tuple<_Elements ...>, ValueType>::findMax(KDTree<std::tuple<_Elements ...>, ValueType>::Node*) [with long unsigned int DIM_CMP = 1; long unsigned int DIM = 0; ValueType = std::__cxx11::basic_string<char>; KeyTypes = {int, int, int}]'
/in/kdtree.hpp:354:49: required from 'KDTree<std::tuple<_Elements ...>, ValueType>::Node* KDTree<std::tuple<_Elements ...>, ValueType>::erase(KDTree<std::tuple<_Elements ...>, ValueType>::Node*, const Key&) [with long unsigned int DIM = 0; ValueType = std::__cxx11::basic_string<char>; KeyTypes = {int, int, int}; KDTree<std::tuple<_Elements ...>, ValueType>::Key = std::tuple<int, int, int>]'
/in/kdtree.hpp:508:17: required from 'bool KDTree<std::tuple<_Elements ...>, ValueType>::erase(const Key&) [with ValueType = std::__cxx11::basic_string<char>; KeyTypes = {int, int, int}; KDTree<std::tuple<_Elements ...>, ValueType>::Key = std::tuple<int, int, int>]'
/in/driver/main.cpp:105:33: required from here
/in/kdtree.hpp:229:23: error: no match for call to '(std::greater<int>) (const Key&, const Key&)'
return compare(a, b);
~~~~~~~^~~~~~
In file included from /usr/include/c++/7/string:48:0,
from /usr/include/c++/7/stdexcept:39,
from /in/kdtree.hpp:4,
from /in/driver/main.cpp:8:
/usr/include/c++/7/bits/stl_function.h:375:7: note: candidate: constexpr bool std::greater<_Tp>::operator()(const _Tp&, const _Tp&) const [with _Tp = int]
operator()(const _Tp& __x, const _Tp& __y) const
^~~~~~~~
/usr/include/c++/7/bits/stl_function.h:375:7: note: no known conversion for argument 1 from 'const Key {aka const std::tuple<int, int, int>}' to 'const int&'
In file included from /in/driver/main.cpp:8:0:
/in/kdtree.hpp: In instantiation of 'static bool KDTree<std::tuple<_Elements ...>, ValueType>::compareKey(const Key&, const Key&, Compare) [with long unsigned int DIM = 2; Compare = std::greater<int>; ValueType = std::__cxx11::basic_string<char>; KeyTypes = {int, int, int}; KDTree<std::tuple<_Elements ...>, ValueType>::Key = std::tuple<int, int, int>]':
/in/kdtree.hpp:248:40: required from 'static KDTree<std::tuple<_Elements ...>, ValueType>::Node* KDTree<std::tuple<_Elements ...>, ValueType>::compareNode(KDTree<std::tuple<_Elements ...>, ValueType>::Node*, KDTree<std::tuple<_Elements ...>, ValueType>::Node*, Compare) [with long unsigned int DIM = 2; Compare = std::greater<int>; ValueType = std::__cxx11::basic_string<char>; KeyTypes = {int, int, int}]'
/in/kdtree.hpp:288:39: required from 'KDTree<std::tuple<_Elements ...>, ValueType>::Node* KDTree<std::tuple<_Elements ...>, ValueType>::findMax(KDTree<std::tuple<_Elements ...>, ValueType>::Node*) [with long unsigned int DIM_CMP = 2; long unsigned int DIM = 0; ValueType = std::__cxx11::basic_string<char>; KeyTypes = {int, int, int}]'
/in/kdtree.hpp:354:49: required from 'KDTree<std::tuple<_Elements ...>, ValueType>::Node* KDTree<std::tuple<_Elements ...>, ValueType>::erase(KDTree<std::tuple<_Elements ...>, ValueType>::Node*, const Key&) [with long unsigned int DIM = 1; ValueType = std::__cxx11::basic_string<char>; KeyTypes = {int, int, int}; KDTree<std::tuple<_Elements ...>, ValueType>::Key = std::tuple<int, int, int>]'
/in/kdtree.hpp:352:46: required from 'KDTree<std::tuple<_Elements ...>, ValueType>::Node* KDTree<std::tuple<_Elements ...>, ValueType>::erase(KDTree<std::tuple<_Elements ...>, ValueType>::Node*, const Key&) [with long unsigned int DIM = 0; ValueType = std::__cxx11::basic_string<char>; KeyTypes = {int, int, int}; KDTree<std::tuple<_Elements ...>, ValueType>::Key = std::tuple<int, int, int>]'
/in/kdtree.hpp:508:17: required from 'bool KDTree<std::tuple<_Elements ...>, ValueType>::erase(const Key&) [with ValueType = std::__cxx11::basic_string<char>; KeyTypes = {int, int, int}; KDTree<std::tuple<_Elements ...>, ValueType>::Key = std::tuple<int, int, int>]'
/in/driver/main.cpp:105:33: required from here
/in/kdtree.hpp:229:23: error: no match for call to '(std::greater<int>) (const Key&, const Key&)'
return compare(a, b);
~~~~~~~^~~~~~
In file included from /usr/include/c++/7/string:48:0,
from /usr/include/c++/7/stdexcept:39,
from /in/kdtree.hpp:4,
from /in/driver/main.cpp:8:
/usr/include/c++/7/bits/stl_function.h:375:7: note: candidate: constexpr bool std::greater<_Tp>::operator()(const _Tp&, const _Tp&) const [with _Tp = int]
operator()(const _Tp& __x, const _Tp& __y) const
^~~~~~~~
/usr/include/c++/7/bits/stl_function.h:375:7: note: no known conversion for argument 1 from 'const Key {aka const std::tuple<int, int, int>}' to 'const int&'