In file included from /in/driver/main.cpp:8:0:
/in/kdtree.hpp:14:7: error: 'KDTree' is not a class template
class KDTree<std::tuple<KeyTypes...>, ValueType> {
^~~~~~
/in/driver/main.cpp: In function 'int main()':
/in/driver/main.cpp:43:57: 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> > >::KDTree(std::vector<std::pair<std::tuple<int, int, int>, std::__cxx11::basic_string<char> > >&)'
KDTree<std::tuple<int, int, int>, string> kdTree(vec);
^
In file included from /in/driver/main.cpp:8:0:
/in/kdtree.hpp:314:5: note: candidate: KDTree<ValueType, KeyTypes>::KDTree(KDTree<ValueType, KeyTypes>&&) [with ValueType = std::tuple<int, int, int>; KeyTypes = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]
KDTree(KDTree&& that) noexcept {
^~~~~~
/in/kdtree.hpp:314:5: note: no known conversion for argument 1 from 'std::vector<std::pair<std::tuple<int, int, int>, std::__cxx11::basic_string<char> > >' to 'KDTree<std::tuple<int, int, int>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&&'
/in/kdtree.hpp:300:5: note: candidate: KDTree<ValueType, KeyTypes>::KDTree(const KDTree<ValueType, KeyTypes>&) [with ValueType = std::tuple<int, int, int>; KeyTypes = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]
KDTree(const KDTree& that) {
^~~~~~
/in/kdtree.hpp:300:5: note: no known conversion for argument 1 from 'std::vector<std::pair<std::tuple<int, int, int>, std::__cxx11::basic_string<char> > >' to 'const KDTree<std::tuple<int, int, int>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&'
/in/kdtree.hpp:298:5: note: candidate: KDTree<ValueType, KeyTypes>::KDTree() [with ValueType = std::tuple<int, int, int>; KeyTypes = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]
KDTree() = default;
^~~~~~
/in/kdtree.hpp:298:5: note: candidate expects 0 arguments, 1 provided
/in/driver/main.cpp:65:37: 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> > >::insert(std::tuple<int, int, int>&, std::__cxx11::string&)'
kdTree.insert(tup, value);
^
In file included from /in/driver/main.cpp:8:0:
/in/kdtree.hpp:229:10: note: candidate: template<long unsigned int DIM> bool KDTree<ValueType, KeyTypes>::insert(const Key&, const Value&, KDTree<ValueType, KeyTypes>::Node*&, KDTree<ValueType, KeyTypes>::Node*) [with long unsigned int DIM = DIM; ValueType = std::tuple<int, int, int>; KeyTypes = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]
bool insert(const Key& key, const Value& value, Node*& node, Node* parent) {
^~~~~~
/in/kdtree.hpp:229:10: note: template argument deduction/substitution failed:
/in/driver/main.cpp:65:37: note: candidate expects 4 arguments, 2 provided
kdTree.insert(tup, value);
^
In file included from /in/driver/main.cpp:8:0:
/in/kdtree.hpp:360:10: note: candidate: bool KDTree<ValueType, KeyTypes>::insert(const Key&, const Value&) [with ValueType = std::tuple<int, int, int>; KeyTypes = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; KDTree<ValueType, KeyTypes>::Key = std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >; KDTree<ValueType, KeyTypes>::Value = std::tuple<int, int, int>]
bool insert(const Key& key, const Value& value) {
^~~~~~
/in/kdtree.hpp:360:10: note: no known conversion for argument 1 from 'std::tuple<int, int, int>' to 'const Key& {aka const std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&}'
/in/driver/main.cpp:71:46: 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> > >::findMin(size_t&)'
auto it = kdTree.findMin(dim_find);
^
In file included from /in/driver/main.cpp:8:0:
/in/kdtree.hpp:264:11: note: candidate: template<long unsigned int DIM> KDTree<ValueType, KeyTypes>::Node* KDTree<ValueType, KeyTypes>::findMin(KDTree<ValueType, KeyTypes>::Node*) [with long unsigned int DIM = DIM; ValueType = std::tuple<int, int, int>; KeyTypes = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]
Node* findMin(Node* node) {
^~~~~~~
/in/kdtree.hpp:264:11: note: template argument deduction/substitution failed:
/in/driver/main.cpp:71:46: note: couldn't deduce template parameter 'DIM'
auto it = kdTree.findMin(dim_find);
^
In file included from /in/driver/main.cpp:8:0:
/in/kdtree.hpp:365:11: note: candidate: template<long unsigned int DIM> KDTree<ValueType, KeyTypes>::Node* KDTree<ValueType, KeyTypes>::findMin() [with long unsigned int DIM = DIM; ValueType = std::tuple<int, int, int>; KeyTypes = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]
Node* findMin() {
^~~~~~~
/in/kdtree.hpp:365:11: note: template argument deduction/substitution failed:
/in/driver/main.cpp:71:46: note: candidate expects 0 arguments, 1 provided
auto it = kdTree.findMin(dim_find);
^
/in/driver/main.cpp:87:46: 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> > >::findMax(size_t&)'
auto it = kdTree.findMax(dim_find);
^
In file included from /in/driver/main.cpp:8:0:
/in/kdtree.hpp:281:11: note: candidate: template<long unsigned int DIM> KDTree<ValueType, KeyTypes>::Node* KDTree<ValueType, KeyTypes>::findMax(KDTree<ValueType, KeyTypes>::Node*) [with long unsigned int DIM = DIM; ValueType = std::tuple<int, int, int>; KeyTypes = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]
Node* findMax(Node* node) {
^~~~~~~
/in/kdtree.hpp:281:11: note: template argument deduction/substitution failed:
/in/driver/main.cpp:87:46: note: couldn't deduce template parameter 'DIM'
auto it = kdTree.findMax(dim_find);
^
In file included from /in/driver/main.cpp:8:0:
/in/kdtree.hpp:370:11: note: candidate: template<long unsigned int DIM> KDTree<ValueType, KeyTypes>::Node* KDTree<ValueType, KeyTypes>::findMax() [with long unsigned int DIM = DIM; ValueType = std::tuple<int, int, int>; KeyTypes = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]
Node* findMax() {
^~~~~~~
/in/kdtree.hpp:370:11: note: template argument deduction/substitution failed:
/in/driver/main.cpp:87:46: note: candidate expects 0 arguments, 1 provided
auto it = kdTree.findMax(dim_find);
^
/in/driver/main.cpp:105:24: error: 'class KDTree<std::tuple<int, int, int>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >' has no member named 'erase'
if (kdTree.erase(tup))
^~~~~
/in/driver/main.cpp:118:38: 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> > >::find(std::tuple<int, int, int>&)'
auto it = kdTree.find(tup);
^
In file included from /in/driver/main.cpp:8:0:
/in/kdtree.hpp:217:11: note: candidate: template<long unsigned int DIM> KDTree<ValueType, KeyTypes>::Node* KDTree<ValueType, KeyTypes>::find(const Key&, KDTree<ValueType, KeyTypes>::Node*) [with long unsigned int DIM = DIM; ValueType = std::tuple<int, int, int>; KeyTypes = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]
Node* find(const Key& key, Node* node) {
^~~~
/in/kdtree.hpp:217:11: note: template argument deduction/substitution failed:
/in/driver/main.cpp:118:38: note: candidate expects 2 arguments, 1 provided
auto it = kdTree.find(tup);
^
In file included from /in/driver/main.cpp:8:0:
/in/kdtree.hpp:347:14: note: candidate: KDTree<ValueType, KeyTypes>::Iterator KDTree<ValueType, KeyTypes>::find(const Key&) [with ValueType = std::tuple<int, int, int>; KeyTypes = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; KDTree<ValueType, KeyTypes>::Key = std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]
Iterator find(const Key& key) {
^~~~
/in/kdtree.hpp:347:14: note: no known conversion for argument 1 from 'std::tuple<int, int, int>' to 'const Key& {aka const std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&}'
/in/driver/main.cpp:139:22: error: no match for 'operator<<' (operand types are 'std::ostream {aka std::basic_ostream<char>}' and 'std::tuple<int, int, int>')
cout << item.second << endl;
~~~~~^~~~~~~~~~~~~~
In file included from /usr/include/c++/7/iostream:39:0,
from /in/driver/main.cpp:9:
/usr/include/c++/7/ostream:108:7: note: candidate: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(std::basic_ostream<_CharT, _Traits>::__ostream_type& (*)(std::basic_ostream<_CharT, _Traits>::__ostream_type&)) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]
operator<<(__ostream_type& (*__pf)(__ostream_type&))
^~~~~~~~
/usr/include/c++/7/ostream:108:7: note: no known conversion for argument 1 from 'std::tuple<int, int, int>' to 'std::basic_ostream<char>::__ostream_type& (*)(std::basic_ostream<char>::__ostream_type&) {aka std::basic_ostream<char>& (*)(std::basic_ostream<char>&)}'
/usr/include/c++/7/ostream:117:7: note: candidate: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(std::basic_ostream<_CharT, _Traits>::__ios_type& (*)(std::basic_ostream<_CharT, _Traits>::__ios_type&)) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>; std::basic_ostream<_CharT, _Traits>::__ios_type = std::basic_ios<char>]
operator<<(__ios_type& (*__pf)(__ios_type&))
^~~~~~~~
/usr/include/c++/7/ostream:117:7: note: no known conversion for argument 1 from 'std::tuple<int, int, int>' to 'std::basic_ostream<char>::__ios_type& (*)(std::basic_ostream<char>::__ios_type&) {aka std::basic_ios<char>& (*)(std::basic_ios<char>&)}'
/usr/include/c++/7/ostream:127:7: note: candidate: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(std::ios_base& (*)(std::ios_base&)) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]
operator<<(ios_base& (*__pf) (ios_base&))
^~~~~~~~
/usr/include/c++/7/ostream:127:7: note: no known conversion for argument 1 from 'std::tuple<int, int, int>' to 'std::ios_base& (*)(std::ios_base&)'
/usr/include/c++/7/ostream:166:7: note: candidate: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(long int) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]
operator<<(long __n)
^~~~~~~~
/usr/include/c++/7/ostream:166:7: note: no known conversion for argument 1 from 'std::tuple<int, int, int>' to 'long int'
/usr/include/c++/7/ostream:170:7: note: candidate: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(long unsigned int) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]
operator<<(unsigned long __n)
^~~~~~~~
/usr/include/c++/7/ostream:170:7: note: no known conversion for argument 1 from 'std::tuple<int, int, int>' to 'long unsigned int'
/usr/include/c++/7/ostream:174:7: note: candidate: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(bool) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]
operator<<(bool __n)
^~~~~~~~
/usr/include/c++/7/ostream:174:7: note: no known conversion for argument 1 from 'std::tuple<int, int, int>' to 'bool'
In file included from /usr/include/c++/7/ostream:693:0,
from /usr/include/c++/7/iostream:39,
from /in/driver/main.cpp:9:
/usr/include/c++/7/bits/ostream.tcc:91:5: note: candidate: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(short int) [with _CharT = char; _Traits = std::char_traits<char>]
basic_ostream<_CharT, _Traits>::
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/7/bits/ostream.tcc:91:5: note: no known conversion for argument 1 from 'std::tuple<int, int, int>' to 'short int'
In file included from /usr/include/c++/7/iostream:39:0,
from /in/driver/main.cpp:9:
/usr/include/c++/7/ostream:181:7: note: candidate: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(short unsigned int) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]
operator<<(unsigned short __n)
^~~~~~~~
/usr/include/c++/7/ostream:181:7: note: no known conversion for argument 1 from 'std::tuple<int, int, int>' to 'short unsigned int'
In file included from /usr/include/c++/7/ostream:693:0,
from /usr/include/c++/7/iostream:39,
from /in/driver/main.cpp:9:
/usr/include/c++/7/bits/ostream.tcc:105:5: note: candidate: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(int) [with _CharT = char; _Traits = std::char_traits<char>]
basic_ostream<_CharT, _Traits>::
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/7/bits/ostream.tcc:105:5: note: no known conversion for argument 1 from 'std::tuple<int, int, int>' to 'int'
In file included from /usr/include/c++/7/iostream:39:0,
from /in/driver/main.cpp:9:
/usr/include/c++/7/ostream:192:7: note: candidate: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(unsigned int) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]
operator<<(unsigned int __n)
^~~~~~~~
/usr/include/c++/7/ostream:192:7: note: no known conversion for argument 1 from 'std::tuple<int, int, int>' to 'unsigned int'
/usr/include/c++/7/ostream:201:7: note: candidate: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(long long int) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]
operator<<(long long __n)
^~~~~~~~
/usr/include/c++/7/ostream:201:7: note: no known conversion for argument 1 from 'std::tuple<int, int, int>' to 'long long int'
/usr/include/c++/7/ostream:205:7: note: candidate: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(long long unsigned int) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]
operator<<(unsigned long long __n)
^~~~~~~~
/usr/include/c++/7/ostream:205:7: note: no known conversion for argument 1 from 'std::tuple<int, int, int>' to 'long long unsigned int'
/usr/include/c++/7/ostream:220:7: note: candidate: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(double) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]
operator<<(double __f)
^~~~~~~~
/usr/include/c++/7/ostream:220:7: note: no known conversion for argument 1 from 'std::tuple<int, int, int>' to 'double'
/usr/include/c++/7/ostream:224:7: note: candidate: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(float) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]
operator<<(float __f)
^~~~~~~~
/usr/include/c++/7/ostream:224:7: note: no known conversion for argument 1 from 'std::tuple<int, int, int>' to 'float'
/usr/include/c++/7/ostream:232:7: note: candidate: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(long double) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]
operator<<(long double __f)
^~~~~~~~
/usr/include/c++/7/ostream:232:7: note: no known conversion for argument 1 from 'std::tuple<int, int, int>' to 'long double'
/usr/include/c++/7/ostream:245:7: note: candidate: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(const void*) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]
operator<<(const void* __p)
^~~~~~~~
/usr/include/c++/7/ostream:245:7: note: no known conversion for argument 1 from 'std::tuple<int, int, int>' to 'const void*'
In file included from /usr/include/c++/7/ostream:693:0,
from /usr/include/c++/7/iostream:39,
from /in/driver/main.cpp:9:
/usr/include/c++/7/bits/ostream.tcc:119:5: note: candidate: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(std::basic_ostream<_CharT, _Traits>::__streambuf_type*) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__streambuf_type = std::basic_streambuf<char>]
basic_ostream<_CharT, _Traits>::
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/7/bits/ostream.tcc:119:5: note: no known conversion for argument 1 from 'std::tuple<int, int, int>' to 'std::basic_ostream<char>::__streambuf_type* {aka std::basic_streambuf<char>*}'
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:559:5: note: candidate: template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, std::basic_string_view<_CharT, _Traits>)
operator<<(basic_ostream<_CharT, _Traits>& __os,
^~~~~~~~
/usr/include/c++/7/string_view:559:5: note: template argument deduction/substitution failed:
/in/driver/main.cpp:139:30: note: 'std::tuple<int, int, int>' is not derived from 'std::basic_string_view<_CharT, _Traits>'
cout << item.second << endl;
^~~~~~
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:6284:5: note: candidate: template<class _CharT, class _Traits, class _Alloc> std::basic_o