-
Notifications
You must be signed in to change notification settings - Fork 0
Description
shout-out concerning an error compiling on MacOS Catalina v. 10.15.7
I will try to solve this and report here.
Follows complete make output:
c++ -MMD -MP -I. -std=c++14 -Wextra -Wpedantic -Wall -O3 -c main.cpp -o main.o In file included from main.cpp:16: In file included from ./algorithms/matching.h:14: /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/vector:877:54: error: implicit instantiation of undefined template 'std::__1::array<double, 2>' __annotate_contiguous_container(data(), data() + capacity(), ^ /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/vector:551:9: note: in instantiation of member function 'std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >::__annotate_delete' requested here __annotate_delete(); ^ /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/utility:297:29: note: in instantiation of member function 'std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >::~vector' requested here struct _LIBCPP_TEMPLATE_VIS pair ^ /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:1635:14: note: in instantiation of function template specialization 'std::__1::allocator_traits<std::__1::allocator<std::__1::__hash_node<std::__1::__hash_value_type<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > >, void *> > >::__destroy<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > >' requested here {__destroy(__has_destroy<allocator_type, _Tp*>(), __a, __p);} ^ /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__hash_table:1602:24: note: in instantiation of function template specialization 'std::__1::allocator_traits<std::__1::allocator<std::__1::__hash_node<std::__1::__hash_value_type<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > >, void *> > >::destroy<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > >' requested here __node_traits::destroy(__na, _NodeTypes::__get_ptr(__real_np->__value_)); ^ /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__hash_table:1541:5: note: in instantiation of member function 'std::__1::__hash_table<std::__1::__hash_value_type<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > >, std::__1::__unordered_map_hasher<unsigned long long, std::__1::__hash_value_type<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > >, std::__1::hash<unsigned long long>, true>, std::__1::__unordered_map_equal<unsigned long long, std::__1::__hash_value_type<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > >, std::__1::equal_to<unsigned long long>, true>, std::__1::allocator<std::__1::__hash_value_type<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > >::__deallocate_node' requested here __deallocate_node(__p1_.first().__next_); ^ /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/unordered_map:968:5: note: (skipping 2 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all) ~unordered_map() { ^ /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:1635:14: note: in instantiation of function template specialization 'std::__1::allocator_traits<std::__1::allocator<std::__1::__hash_node<std::__1::__hash_value_type<unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > >, void *> > >::__destroy<std::__1::pair<const unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > > >' requested here {__destroy(__has_destroy<allocator_type, _Tp*>(), __a, __p);} ^ /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__hash_table:1602:24: note: in instantiation of function template specialization 'std::__1::allocator_traits<std::__1::allocator<std::__1::__hash_node<std::__1::__hash_value_type<unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > >, void *> > >::destroy<std::__1::pair<const unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > > >' requested here __node_traits::destroy(__na, _NodeTypes::__get_ptr(__real_np->__value_)); ^ /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__hash_table:1541:5: note: in instantiation of member function 'std::__1::__hash_table<std::__1::__hash_value_type<unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > >, std::__1::__unordered_map_hasher<unsigned long long, std::__1::__hash_value_type<unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > >, std::__1::hash<unsigned long long>, true>, std::__1::__unordered_map_equal<unsigned long long, std::__1::__hash_value_type<unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > >, std::__1::equal_to<unsigned long long>, true>, std::__1::allocator<std::__1::__hash_value_type<unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > > > >::__deallocate_node' requested here __deallocate_node(__p1_.first().__next_); ^ /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/unordered_map:904:5: note: in instantiation of member function 'std::__1::__hash_table<std::__1::__hash_value_type<unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > >, std::__1::__unordered_map_hasher<unsigned long long, std::__1::__hash_value_type<unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > >, std::__1::hash<unsigned long long>, true>, std::__1::__unordered_map_equal<unsigned long long, std::__1::__hash_value_type<unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > >, std::__1::equal_to<unsigned long long>, true>, std::__1::allocator<std::__1::__hash_value_type<unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > > > >::~__hash_table' requested here unordered_map() ^ main.cpp:81:16: note: in instantiation of member function 'std::__1::unordered_map<unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > > > >::unordered_map' requested here GeometryList geometries; ^ /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__tuple:219:64: note: template is declared here template <class _Tp, size_t _Size> struct _LIBCPP_TEMPLATE_VIS array; ^ In file included from main.cpp:16: In file included from ./algorithms/matching.h:14: /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/vector:372:52: error: implicit instantiation of undefined template 'std::__1::array<double, 2>' {return static_cast<size_type>(__end_cap() - __begin_);} ^ /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/vector:659:25: note: in instantiation of member function 'std::__1::__vector_base<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >::capacity' requested here {return __base::capacity();} ^ /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/vector:877:56: note: in instantiation of member function 'std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >::capacity' requested here __annotate_contiguous_container(data(), data() + capacity(), ^ /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/vector:551:9: note: in instantiation of member function 'std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >::__annotate_delete' requested here __annotate_delete(); ^ /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/utility:297:29: note: in instantiation of member function 'std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >::~vector' requested here struct _LIBCPP_TEMPLATE_VIS pair ^ /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:1635:14: note: in instantiation of function template specialization 'std::__1::allocator_traits<std::__1::allocator<std::__1::__hash_node<std::__1::__hash_value_type<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > >, void *> > >::__destroy<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > >' requested here {__destroy(__has_destroy<allocator_type, _Tp*>(), __a, __p);} ^ /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__hash_table:1602:24: note: (skipping 4 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all) __node_traits::destroy(__na, _NodeTypes::__get_ptr(__real_np->__value_)); ^ /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:1635:14: note: in instantiation of function template specialization 'std::__1::allocator_traits<std::__1::allocator<std::__1::__hash_node<std::__1::__hash_value_type<unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > >, void *> > >::__destroy<std::__1::pair<const unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > > >' requested here {__destroy(__has_destroy<allocator_type, _Tp*>(), __a, __p);} ^ /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__hash_table:1602:24: note: in instantiation of function template specialization 'std::__1::allocator_traits<std::__1::allocator<std::__1::__hash_node<std::__1::__hash_value_type<unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > >, void *> > >::destroy<std::__1::pair<const unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > > >' requested here __node_traits::destroy(__na, _NodeTypes::__get_ptr(__real_np->__value_)); ^ /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__hash_table:1541:5: note: in instantiation of member function 'std::__1::__hash_table<std::__1::__hash_value_type<unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > >, std::__1::__unordered_map_hasher<unsigned long long, std::__1::__hash_value_type<unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > >, std::__1::hash<unsigned long long>, true>, std::__1::__unordered_map_equal<unsigned long long, std::__1::__hash_value_type<unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > >, std::__1::equal_to<unsigned long long>, true>, std::__1::allocator<std::__1::__hash_value_type<unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > > > >::__deallocate_node' requested here __deallocate_node(__p1_.first().__next_); ^ /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/unordered_map:904:5: note: in instantiation of member function 'std::__1::__hash_table<std::__1::__hash_value_type<unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > >, std::__1::__unordered_map_hasher<unsigned long long, std::__1::__hash_value_type<unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > >, std::__1::hash<unsigned long long>, true>, std::__1::__unordered_map_equal<unsigned long long, std::__1::__hash_value_type<unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > >, std::__1::equal_to<unsigned long long>, true>, std::__1::allocator<std::__1::__hash_value_type<unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > > > >::~__hash_table' requested here unordered_map() ^ main.cpp:81:16: note: in instantiation of member function 'std::__1::unordered_map<unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > > > >::unordered_map' requested here GeometryList geometries; ^ /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__tuple:219:64: note: template is declared here template <class _Tp, size_t _Size> struct _LIBCPP_TEMPLATE_VIS array; ^ In file included from main.cpp:16: In file included from ./algorithms/matching.h:14: /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/vector:426:64: error: implicit instantiation of undefined template 'std::__1::array<double, 2>' __alloc_traits::destroy(__alloc(), _VSTD::__to_address(--__soon_to_be_end)); ^ /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/vector:369:29: note: in instantiation of member function 'std::__1::__vector_base<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >::__destruct_at_end' requested here void clear() _NOEXCEPT {__destruct_at_end(__begin_);} ^ /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/vector:463:9: note: in instantiation of member function 'std::__1::__vector_base<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >::clear' requested here clear(); ^ /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/vector:549:5: note: in instantiation of member function 'std::__1::__vector_base<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >::~__vector_base' requested here ~vector() ^ /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/utility:297:29: note: in instantiation of member function 'std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >::~vector' requested here struct _LIBCPP_TEMPLATE_VIS pair ^ /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:1635:14: note: in instantiation of function template specialization 'std::__1::allocator_traits<std::__1::allocator<std::__1::__hash_node<std::__1::__hash_value_type<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > >, void *> > >::__destroy<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > >' requested here {__destroy(__has_destroy<allocator_type, _Tp*>(), __a, __p);} ^ /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__hash_table:1602:24: note: (skipping 4 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all) __node_traits::destroy(__na, _NodeTypes::__get_ptr(__real_np->__value_)); ^ /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:1635:14: note: in instantiation of function template specialization 'std::__1::allocator_traits<std::__1::allocator<std::__1::__hash_node<std::__1::__hash_value_type<unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > >, void *> > >::__destroy<std::__1::pair<const unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > > >' requested here {__destroy(__has_destroy<allocator_type, _Tp*>(), __a, __p);} ^ /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__hash_table:1602:24: note: in instantiation of function template specialization 'std::__1::allocator_traits<std::__1::allocator<std::__1::__hash_node<std::__1::__hash_value_type<unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > >, void *> > >::destroy<std::__1::pair<const unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > > >' requested here __node_traits::destroy(__na, _NodeTypes::__get_ptr(__real_np->__value_)); ^ /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__hash_table:1541:5: note: in instantiation of member function 'std::__1::__hash_table<std::__1::__hash_value_type<unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > >, std::__1::__unordered_map_hasher<unsigned long long, std::__1::__hash_value_type<unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > >, std::__1::hash<unsigned long long>, true>, std::__1::__unordered_map_equal<unsigned long long, std::__1::__hash_value_type<unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > >, std::__1::equal_to<unsigned long long>, true>, std::__1::allocator<std::__1::__hash_value_type<unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > > > >::__deallocate_node' requested here __deallocate_node(__p1_.first().__next_); ^ /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/unordered_map:904:5: note: in instantiation of member function 'std::__1::__hash_table<std::__1::__hash_value_type<unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > >, std::__1::__unordered_map_hasher<unsigned long long, std::__1::__hash_value_type<unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > >, std::__1::hash<unsigned long long>, true>, std::__1::__unordered_map_equal<unsigned long long, std::__1::__hash_value_type<unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > >, std::__1::equal_to<unsigned long long>, true>, std::__1::allocator<std::__1::__hash_value_type<unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > > > >::~__hash_table' requested here unordered_map() ^ main.cpp:81:16: note: in instantiation of member function 'std::__1::unordered_map<unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > > > >::unordered_map' requested here GeometryList geometries; ^ /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__tuple:219:64: note: template is declared here template <class _Tp, size_t _Size> struct _LIBCPP_TEMPLATE_VIS array; ^ In file included from main.cpp:10: In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/algorithm:643: /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:1872:55: error: implicit instantiation of undefined template 'std::__1::array<double, 2>' {_VSTD::__libcpp_deallocate((void*)__p, __n * sizeof(_Tp), _LIBCPP_ALIGNOF(_Tp));} ^ /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:1594:14: note: in instantiation of member function 'std::__1::allocator<std::__1::array<double, 2> >::deallocate' requested here {__a.deallocate(__p, __n);} ^ /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/vector:464:25: note: in instantiation of member function 'std::__1::allocator_traits<std::__1::allocator<std::__1::array<double, 2> > >::deallocate' requested here __alloc_traits::deallocate(__alloc(), __begin_, capacity()); ^ /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/vector:549:5: note: in instantiation of member function 'std::__1::__vector_base<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >::~__vector_base' requested here ~vector() ^ /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/utility:297:29: note: in instantiation of member function 'std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >::~vector' requested here struct _LIBCPP_TEMPLATE_VIS pair ^ /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:1635:14: note: in instantiation of function template specialization 'std::__1::allocator_traits<std::__1::allocator<std::__1::__hash_node<std::__1::__hash_value_type<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > >, void *> > >::__destroy<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > >' requested here {__destroy(__has_destroy<allocator_type, _Tp*>(), __a, __p);} ^ /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__hash_table:1602:24: note: (skipping 4 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all) __node_traits::destroy(__na, _NodeTypes::__get_ptr(__real_np->__value_)); ^ /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:1635:14: note: in instantiation of function template specialization 'std::__1::allocator_traits<std::__1::allocator<std::__1::__hash_node<std::__1::__hash_value_type<unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > >, void *> > >::__destroy<std::__1::pair<const unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > > >' requested here {__destroy(__has_destroy<allocator_type, _Tp*>(), __a, __p);} ^ /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__hash_table:1602:24: note: in instantiation of function template specialization 'std::__1::allocator_traits<std::__1::allocator<std::__1::__hash_node<std::__1::__hash_value_type<unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > >, void *> > >::destroy<std::__1::pair<const unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > > >' requested here __node_traits::destroy(__na, _NodeTypes::__get_ptr(__real_np->__value_)); ^ /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__hash_table:1541:5: note: in instantiation of member function 'std::__1::__hash_table<std::__1::__hash_value_type<unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > >, std::__1::__unordered_map_hasher<unsigned long long, std::__1::__hash_value_type<unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > >, std::__1::hash<unsigned long long>, true>, std::__1::__unordered_map_equal<unsigned long long, std::__1::__hash_value_type<unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > >, std::__1::equal_to<unsigned long long>, true>, std::__1::allocator<std::__1::__hash_value_type<unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > > > >::__deallocate_node' requested here __deallocate_node(__p1_.first().__next_); ^ /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/unordered_map:904:5: note: in instantiation of member function 'std::__1::__hash_table<std::__1::__hash_value_type<unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > >, std::__1::__unordered_map_hasher<unsigned long long, std::__1::__hash_value_type<unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > >, std::__1::hash<unsigned long long>, true>, std::__1::__unordered_map_equal<unsigned long long, std::__1::__hash_value_type<unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > >, std::__1::equal_to<unsigned long long>, true>, std::__1::allocator<std::__1::__hash_value_type<unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > > > >::~__hash_table' requested here unordered_map() ^ main.cpp:81:16: note: in instantiation of member function 'std::__1::unordered_map<unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::unordered_map<unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > >, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<const unsigned long long, std::__1::vector<std::__1::array<double, 2>, std::__1::allocator<std::__1::array<double, 2> > > > > > > > >::unordered_map' requested here GeometryList geometries; ^ /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__tuple:219:64: note: template is declared here template <class _Tp, size_t _Size> struct _LIBCPP_TEMPLATE_VIS array; ^ 4 errors generated. make: *** [main.o] Error 1