In file included from /in/driver/main.cpp:8:0:
/in/kdtree.hpp: In member function 'KDTree<std::tuple<_Elements ...>, ValueType>::Node* KDTree<std::tuple<_Elements ...>, ValueType>::TreeInit(std::vector<std::pair<std::tuple<_Elements ...>, ValueType> >, int, int, KDTree<std::tuple<_Elements ...>, ValueType>::Node*)':
/in/kdtree.hpp:494:43: error: 'cmp' was not declared in this scope
std::nth_element(v.begin(), m, v.end(), cmp<DIM>);
^~~
/in/kdtree.hpp:494:51: error: expected primary-expression before ')' token
std::nth_element(v.begin(), m, v.end(), cmp<DIM>);
^
/in/kdtree.hpp:499:43: error: declaration of 'std::vector<std::pair<std::tuple<_Elements ...>, ValueType> > left' shadows a parameter
std::vector<std::pair<Key, Value>> left(v.begin(), m);
^
/in/kdtree.hpp:500:44: error: declaration of 'std::vector<std::pair<std::tuple<_Elements ...>, ValueType> > right' shadows a parameter
std::vector<std::pair<Key, Value>> right(m + 1, v.end());
^
/in/kdtree.hpp: In constructor 'KDTree<std::tuple<_Elements ...>, ValueType>::KDTree(std::vector<std::pair<std::tuple<_Elements ...>, ValueType> >)':
/in/kdtree.hpp:537:36: error: 'cmp' was not declared in this scope
stable_sort(v.begin(), v.end(), cmp<DIM>);
^~~
/in/kdtree.hpp:537:40: error: 'DIM' was not declared in this scope
stable_sort(v.begin(), v.end(), cmp<DIM>);
^~~
/in/kdtree.hpp:537:44: error: expected primary-expression before ')' token
stable_sort(v.begin(), v.end(), cmp<DIM>);
^
/in/kdtree.hpp:538:45: error: 'uniqueRule' was not declared in this scope
auto last = unique(v.rbegin(), v.rend(), uniqueRule);
^~~~~~~~~~
/in/kdtree.hpp: In instantiation of 'KDTree<std::tuple<_Elements ...>, ValueType>::KDTree(std::vector<std::pair<std::tuple<_Elements ...>, ValueType> >) [with ValueType = std::__cxx11::basic_string<char>; KeyTypes = {int, int, int}]':
/in/driver/main.cpp:43:57: required from here
/in/kdtree.hpp:541:22: error: no matching function for call to 'KDTree<std::tuple<int, int, int>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::TreeInit<0>(std::vector<std::pair<std::tuple<int, int, int>, std::__cxx11::basic_string<char> > >&, std::nullptr_t)'
root = TreeInit<0>(v, nullptr);
~~~~~~~~~~~^~~~~~~~~~~~
In file included from /in/driver/main.cpp:8:0:
/in/kdtree.hpp:473:8: note: candidate: template<long unsigned int DIM> KDTree<std::tuple<_Elements ...>, ValueType>::Node* KDTree<std::tuple<_Elements ...>, ValueType>::TreeInit(std::vector<std::pair<std::tuple<_Elements ...>, ValueType> >, int, int, KDTree<std::tuple<_Elements ...>, ValueType>::Node*) [with long unsigned int DIM = DIM; ValueType = std::__cxx11::basic_string<char>; KeyTypes = {int, int, int}]
Node *TreeInit(std::vector<std::pair<Key, Value>> v, int left, int right, Node* parent)
^~~~~~~~
/in/kdtree.hpp:473:8: note: template argument deduction/substitution failed:
In file included from /in/driver/main.cpp:8:0:
/in/kdtree.hpp:541:22: note: candidate expects 4 arguments, 2 provided
root = TreeInit<0>(v, nullptr);
~~~~~~~~~~~^~~~~~~~~~~~