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>::erase(KDTree<std::tuple<_Elements ...>, ValueType>::Node*, const Key&)':
/in/kdtree.hpp:382:31: error: 'replaceAndRemove' was not declared in this scope
node->right = replaceAndRemove<DIM, DIM_NEXT>(node, node->right, [this](Node *n)
^~~~~~~~~~~~~~~~
/in/kdtree.hpp:387:30: error: 'replaceAndRemove' was not declared in this scope
node->left = replaceAndRemove<DIM, DIM_NEXT>(node, node->left, [this](Node *n)
^~~~~~~~~~~~~~~~
/in/kdtree.hpp: In instantiation of '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:557: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:382:67: error: left operand of comma operator has no effect [-Werror=unused-value]
node->right = replaceAndRemove<DIM, DIM_NEXT>(node, node->right, [this](Node *n)
~~~~^~~~~~~~~~~~~
/in/kdtree.hpp:382:75: error: right operand of comma operator has no effect [-Werror=unused-value]
node->right = replaceAndRemove<DIM, DIM_NEXT>(node, node->right, [this](Node *n)
~~~~~~^~~~~
/in/kdtree.hpp:382:61: error: no match for 'operator>' (operand types are 'const size_t {aka const long unsigned int}' and '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>]::<lambda(KDTree<std::tuple<int, int, int>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::Node*)>')
node->right = replaceAndRemove<DIM, DIM_NEXT>(node, node->right, [this](Node *n)
~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ return findMin<DIM, DIM_NEXT>(n); });
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/7/utility:70:0,
from /usr/include/c++/7/tuple:38,
from /in/kdtree.hpp:1,
from /in/driver/main.cpp:8:
/usr/include/c++/7/bits/stl_pair.h:467:5: note: candidate: template<class _T1, class _T2> constexpr bool std::operator>(const std::pair<_T1, _T2>&, const std::pair<_T1, _T2>&)
operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
^~~~~~~~
/usr/include/c++/7/bits/stl_pair.h:467:5: note: template argument deduction/substitution failed:
In file included from /in/driver/main.cpp:8:0:
/in/kdtree.hpp:382:61: note: mismatched types 'const std::pair<_T1, _T2>' and 'const size_t {aka const long unsigned int}'
node->right = replaceAndRemove<DIM, DIM_NEXT>(node, node->right, [this](Node *n)
~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ return findMin<DIM, DIM_NEXT>(n); });
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/7/bits/stl_algobase.h:67:0,
from /usr/include/c++/7/bits/char_traits.h:39,
from /usr/include/c++/7/string:40,
from /usr/include/c++/7/stdexcept:39,
from /usr/include/c++/7/array:39,
from /usr/include/c++/7/tuple:39,
from /in/kdtree.hpp:1,
from /in/driver/main.cpp:8:
/usr/include/c++/7/bits/stl_iterator.h:320:5: note: candidate: template<class _Iterator> constexpr bool std::operator>(const std::reverse_iterator<_Iterator>&, const std::reverse_iterator<_Iterator>&)
operator>(const reverse_iterator<_Iterator>& __x,
^~~~~~~~
/usr/include/c++/7/bits/stl_iterator.h:320:5: note: template argument deduction/substitution failed:
In file included from /in/driver/main.cpp:8:0:
/in/kdtree.hpp:382:61: note: mismatched types 'const std::reverse_iterator<_Iterator>' and 'const size_t {aka const long unsigned int}'
node->right = replaceAndRemove<DIM, DIM_NEXT>(node, node->right, [this](Node *n)
~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ return findMin<DIM, DIM_NEXT>(n); });
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/7/bits/stl_algobase.h:67:0,
from /usr/include/c++/7/bits/char_traits.h:39,
from /usr/include/c++/7/string:40,
from /usr/include/c++/7/stdexcept:39,
from /usr/include/c++/7/array:39,
from /usr/include/c++/7/tuple:39,
from /in/kdtree.hpp:1,
from /in/driver/main.cpp:8:
/usr/include/c++/7/bits/stl_iterator.h:358:5: note: candidate: template<class _IteratorL, class _IteratorR> constexpr bool std::operator>(const std::reverse_iterator<_Iterator>&, const std::reverse_iterator<_IteratorR>&)
operator>(const reverse_iterator<_IteratorL>& __x,
^~~~~~~~
/usr/include/c++/7/bits/stl_iterator.h:358:5: note: template argument deduction/substitution failed:
In file included from /in/driver/main.cpp:8:0:
/in/kdtree.hpp:382:61: note: mismatched types 'const std::reverse_iterator<_Iterator>' and 'const size_t {aka const long unsigned int}'
node->right = replaceAndRemove<DIM, DIM_NEXT>(node, node->right, [this](Node *n)
~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ return findMin<DIM, DIM_NEXT>(n); });
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/7/bits/stl_algobase.h:67:0,
from /usr/include/c++/7/bits/char_traits.h:39,
from /usr/include/c++/7/string:40,
from /usr/include/c++/7/stdexcept:39,
from /usr/include/c++/7/array:39,
from /usr/include/c++/7/tuple:39,
from /in/kdtree.hpp:1,
from /in/driver/main.cpp:8:
/usr/include/c++/7/bits/stl_iterator.h:1169:5: note: candidate: template<class _IteratorL, class _IteratorR> constexpr bool std::operator>(const std::move_iterator<_IteratorL>&, const std::move_iterator<_IteratorR>&)
operator>(const move_iterator<_IteratorL>& __x,
^~~~~~~~
/usr/include/c++/7/bits/stl_iterator.h:1169:5: note: template argument deduction/substitution failed:
In file included from /in/driver/main.cpp:8:0:
/in/kdtree.hpp:382:61: note: mismatched types 'const std::move_iterator<_IteratorL>' and 'const size_t {aka const long unsigned int}'
node->right = replaceAndRemove<DIM, DIM_NEXT>(node, node->right, [this](Node *n)
~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ return findMin<DIM, DIM_NEXT>(n); });
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/7/bits/stl_algobase.h:67:0,
from /usr/include/c++/7/bits/char_traits.h:39,
from /usr/include/c++/7/string:40,
from /usr/include/c++/7/stdexcept:39,
from /usr/include/c++/7/array:39,
from /usr/include/c++/7/tuple:39,
from /in/kdtree.hpp:1,
from /in/driver/main.cpp:8:
/usr/include/c++/7/bits/stl_iterator.h:1175:5: note: candidate: template<class _Iterator> constexpr bool std::operator>(const std::move_iterator<_IteratorL>&, const std::move_iterator<_IteratorL>&)
operator>(const move_iterator<_Iterator>& __x,
^~~~~~~~
/usr/include/c++/7/bits/stl_iterator.h:1175:5: note: template argument deduction/substitution failed:
In file included from /in/driver/main.cpp:8:0:
/in/kdtree.hpp:382:61: note: mismatched types 'const std::move_iterator<_IteratorL>' and 'const size_t {aka const long unsigned int}'
node->right = replaceAndRemove<DIM, DIM_NEXT>(node, node->right, [this](Node *n)
~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ return findMin<DIM, DIM_NEXT>(n); });
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/7/bits/basic_string.h:48:0,
from /usr/include/c++/7/string:52,
from /usr/include/c++/7/stdexcept:39,
from /usr/include/c++/7/array:39,
from /usr/include/c++/7/tuple:39,
from /in/kdtree.hpp:1,
from /in/driver/main.cpp:8:
/usr/include/c++/7/string_view:504:5: note: candidate: template<class _CharT, class _Traits> constexpr bool std::operator>(std::basic_string_view<_CharT, _Traits>, std::basic_string_view<_CharT, _Traits>)
operator> (basic_string_view<_CharT, _Traits> __x,
^~~~~~~~
/usr/include/c++/7/string_view:504:5: note: template argument deduction/substitution failed:
In file included from /in/driver/main.cpp:8:0:
/in/kdtree.hpp:382:61: note: mismatched types 'std::basic_string_view<_CharT, _Traits>' and 'long unsigned int'
node->right = replaceAndRemove<DIM, DIM_NEXT>(node, node->right, [this](Node *n)
~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ return findMin<DIM, DIM_NEXT>(n); });
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/7/bits/basic_string.h:48:0,
from /usr/include/c++/7/string:52,
from /usr/include/c++/7/stdexcept:39,
from /usr/include/c++/7/array:39,
from /usr/include/c++/7/tuple:39,
from /in/kdtree.hpp:1,
from /in/driver/main.cpp:8:
/usr/include/c++/7/string_view:510:5: note: candidate: template<class _CharT, class _Traits> constexpr bool std::operator>(std::basic_string_view<_CharT, _Traits>, std::__detail::__idt<std::basic_string_view<_CharT, _Traits> >)
operator> (basic_string_view<_CharT, _Traits> __x,
^~~~~~~~
/usr/include/c++/7/string_view:510:5: note: template argument deduction/substitution failed:
In file included from /in/driver/main.cpp:8:0:
/in/kdtree.hpp:382:61: note: mismatched types 'std::basic_string_view<_CharT, _Traits>' and 'long unsigned int'
node->right = replaceAndRemove<DIM, DIM_NEXT>(node, node->right, [this](Node *n)
~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ return findMin<DIM, DIM_NEXT>(n); });
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/7/bits/basic_string.h:48:0,
from /usr/include/c++/7/string:52,
from /usr/include/c++/7/stdexcept:39,
from /usr/include/c++/7/array:39,
from /usr/include/c++/7/tuple:39,
from /in/kdtree.hpp:1,
from /in/driver/main.cpp:8:
/usr/include/c++/7/string_view:516:5: note: candidate: template<class _CharT, class _Traits> constexpr bool std::operator>(std::__detail::__idt<std::basic_string_view<_CharT, _Traits> >, std::basic_string_view<_CharT, _Traits>)
operator> (__detail::__idt<basic_string_view<_CharT, _Traits>> __x,
^~~~~~~~
/usr/include/c++/7/string_view:516:5: note: template argument deduction/substitution failed:
In file included from /in/driver/main.cpp:8:0:
/in/kdtree.hpp:382:61: note: '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>]::<lambda(KDTree<std::tuple<int, int, int>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::Node*)>' is not derived from 'std::basic_string_view<_CharT, _Traits>'
node->right = replaceAndRemove<DIM, DIM_NEXT>(node, node->right, [this](Node *n)
~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ return findMin<DIM, DIM_NEXT>(n); });
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/7/string:52:0,
from /usr/include/c++/7/stdexcept:39,
from /usr/include/c++/7/array:39,
from /usr/include/c++/7/tuple:39,
from /in/kdtree.hpp:1,
from /in/driver/main.cpp:8:
/usr/include/c++/7/bits/basic_string.h:6132:5: note: candidate: template<class _CharT, class _Traits, class _Alloc> bool std::operator>(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&)
operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
^~~~~~~~
/usr/include/c++/7/bits/basic_string.h:6132:5: note: template argument deduction/substitution failed:
In file included from /in/driver/main.cpp:8:0:
/in/kdtree.hpp:382:61: note: mismatched types 'const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>' and 'const size_t {aka const long unsigned int}'
node->right = replaceAndRemove<DIM, DIM_NEXT>(node, node->right, [this](Node *n)
~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ return findMin<DIM, DIM_NEXT>(n); });
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/7/string:52:0,
from /usr/include/c++/7/stdexcept:39,
from /usr/include/c++/7/array:39,
from /usr/include/c++/7/tuple:39,
from /in/kdtree.hpp:1,
from /in/driver/main.cpp:8:
/usr/include/c++/7/bits/basic_string.h:6145:5: note: candidate: template<class _CharT, class _Traits, class _Alloc> bool std::operator>(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _CharT*)
operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
^~~~~~~~
/usr/include/c++/7/bits/basic_string.h:6145:5: note: template argument deduction/substitution failed:
In file included from /in/driver/main.cpp:8:0:
/in/kdtree.hpp:382:61: note: mismatched types 'const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>' and 'const size_t {aka const long unsigned int}'
node->right = replaceAndRemove<DIM, DIM_NEXT>(node, node->right, [this](Node *n)
~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ return findMin<DIM, DIM_NEXT>(n); });
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/7/string:52:0,
from /usr/include/c++/7/stdexcept:39,
from /usr/include/c++/7/array:39,
from /usr/include/c++/7/tuple:39,
from /in/kdtree.hpp:1,
from /in/driver/main.cpp:8:
/usr/include/c++/7/bits/basic_string.h:6157:5: note: candidate: template<class _CharT, class _Traits, class _Alloc> bool std::operator>(const _CharT*, const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&)
operator>(const _CharT* __lhs,
^~~~~~~~
/usr/include/c++/7/bits/basic_string.h:6157:5: note: template argument deduction/substitution failed:
In file included from /in/driver/main.cpp:8:0:
/in/kdtree.hpp:382:61: note: mismatched types 'const _CharT*' and 'long unsigned int'
node->right = replaceAndRemove<DIM, DIM_NEXT>(node, node->right, [this](Node *n)
~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ return findMin<DIM, DIM_NEXT>(n); });
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/7/tuple:39:0,
from /in/kdtree.hpp:1,
from /in/driver/main.cpp:8:
/usr/include/c++/7/array:270:5: note: candidate: template<class _Tp, long unsigned int _Nm> bool std::operator>(const std::array<_Tp, _Nm>&, const std::array<_Tp, _Nm>&)
operator>(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two)
^~~~~~~~
/usr/include/c++/7/array:270:5: note: template argument deduction/substitution failed:
In file included from /in/driver/main.cpp:8:0:
/in/kdtree.hpp:382:61: note: mismatched types 'const std::array<_Tp, _Nm>' and 'const size_t {aka const long unsigned int}'
node->right = replaceAndRemove<DIM, DIM_NEXT>(node, node->right, [this](Node *n)
~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ return findMin<DIM, DIM_NEXT>(n); });
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /in/kdtree.hpp:1:0,
from /in/driver/main.cpp:8:
/usr/include/c++/7/tuple:1429:5: note: candidate: template<class ... _TElements, class ... _UElements> constexpr bool std::operator>(const std::tuple<_Tps ...>&, const std::tuple<_Elements ...>&)
operator>(const tuple<_TElements...>& __t,
^~~~~~~~
/usr/include/c++/7/tuple:1429:5: note: template argument deduction/substitution failed:
In file included from /in/driver/main.cpp:8:0:
/in/kdtree.hpp:382:61: note: mismatched types 'const std::tuple<_Tps ...>' and 'const size_t {aka const long unsigned int}'
node->right = replaceAndRemove<DIM, DIM_NEXT>(node, node->right, [this](Node *n)
~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ return findMin<DIM, DIM_NEXT>(n); });
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/7/vector:64:0,
from /in/kdtree.hpp:2,
from /in/driver/main.cpp:8:
/usr/include/c++/7/bits/stl_vector.h:1631:5: note: candidate: template<class _Tp, class _Alloc> bool std::operator>(const std::vector<_Tp, _Alloc>&, const std::vector<_Tp, _Alloc>&)
operator>(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y)
^~~~~~~~
/usr/include/c++/7/bits/stl_vector.h:1631:5: note: template argument deduction/substitution failed:
In file included from /in/driver/main.cpp:8:0:
/in/kdtree.hpp:382:61: note: mi