In file included from /in/driver/main.cpp:8:0:
/in/kdtree.hpp: In instantiation of 'void KDTree<std::tuple<_Elements ...>, ValueType>::removeDuplicates(std::vector<std::pair<std::tuple<_Elements ...>, ValueType> >&) [with ValueType = std::__cxx11::basic_string<char>; KeyTypes = {int, int, int}]':
/in/kdtree.hpp:489:25: required from '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:445:9: error: no matching function for call to 'std::vector<std::pair<std::tuple<int, int, int>, std::__cxx11::basic_string<char> > >::erase(std::vector<std::pair<std::tuple<int, int, int>, std::__cxx11::basic_string<char> > >::iterator, std::pair<std::tuple<int, int, int>, std::__cxx11::basic_string<char> >* const&)'
v.erase(v.begin(), tmp.base());
^
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:1179:7: note: candidate: std::vector<_Tp, _Alloc>::iterator std::vector<_Tp, _Alloc>::erase(std::vector<_Tp, _Alloc>::const_iterator) [with _Tp = std::pair<std::tuple<int, int, int>, std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::pair<std::tuple<int, int, int>, std::__cxx11::basic_string<char> > >; std::vector<_Tp, _Alloc>::iterator = __gnu_cxx::__normal_iterator<std::pair<std::tuple<int, int, int>, std::__cxx11::basic_string<char> >*, std::vector<std::pair<std::tuple<int, int, int>, std::__cxx11::basic_string<char> > > >; typename std::_Vector_base<_Tp, _Alloc>::pointer = std::pair<std::tuple<int, int, int>, std::__cxx11::basic_string<char> >*; std::vector<_Tp, _Alloc>::const_iterator = __gnu_cxx::__normal_iterator<const std::pair<std::tuple<int, int, int>, std::__cxx11::basic_string<char> >*, std::vector<std::pair<std::tuple<int, int, int>, std::__cxx11::basic_string<char> > > >; typename __gnu_cxx::__alloc_traits<typename std::_Vector_base<_Tp, _Alloc>::_Tp_alloc_type>::const_pointer = const std::pair<std::tuple<int, int, int>, std::__cxx11::basic_string<char> >*]
erase(const_iterator __position)
^~~~~
/usr/include/c++/7/bits/stl_vector.h:1179:7: note: candidate expects 1 argument, 2 provided
/usr/include/c++/7/bits/stl_vector.h:1206:7: note: candidate: std::vector<_Tp, _Alloc>::iterator std::vector<_Tp, _Alloc>::erase(std::vector<_Tp, _Alloc>::const_iterator, std::vector<_Tp, _Alloc>::const_iterator) [with _Tp = std::pair<std::tuple<int, int, int>, std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::pair<std::tuple<int, int, int>, std::__cxx11::basic_string<char> > >; std::vector<_Tp, _Alloc>::iterator = __gnu_cxx::__normal_iterator<std::pair<std::tuple<int, int, int>, std::__cxx11::basic_string<char> >*, std::vector<std::pair<std::tuple<int, int, int>, std::__cxx11::basic_string<char> > > >; typename std::_Vector_base<_Tp, _Alloc>::pointer = std::pair<std::tuple<int, int, int>, std::__cxx11::basic_string<char> >*; std::vector<_Tp, _Alloc>::const_iterator = __gnu_cxx::__normal_iterator<const std::pair<std::tuple<int, int, int>, std::__cxx11::basic_string<char> >*, std::vector<std::pair<std::tuple<int, int, int>, std::__cxx11::basic_string<char> > > >; typename __gnu_cxx::__alloc_traits<typename std::_Vector_base<_Tp, _Alloc>::_Tp_alloc_type>::const_pointer = const std::pair<std::tuple<int, int, int>, std::__cxx11::basic_string<char> >*]
erase(const_iterator __first, const_iterator __last)
^~~~~
/usr/include/c++/7/bits/stl_vector.h:1206:7: note: no known conversion for argument 2 from 'std::pair<std::tuple<int, int, int>, std::__cxx11::basic_string<char> >* const' to 'std::vector<std::pair<std::tuple<int, int, int>, std::__cxx11::basic_string<char> > >::const_iterator {aka __gnu_cxx::__normal_iterator<const std::pair<std::tuple<int, int, int>, std::__cxx11::basic_string<char> >*, std::vector<std::pair<std::tuple<int, int, int>, std::__cxx11::basic_string<char> > > >}'