g++ -std=c++17 -O3 -g -Wall -Werror -Iinclude/ src/bentley_ottmann.cpp -c -o obj/bentley_ottmann.o In file included from /usr/include/c++/10/queue:63, from src/bentley_ottmann.cpp:4: /usr/include/c++/10/bits/stl_function.h: In instantiation of ‘constexpr bool std::greater<_Tp>::operator()(const _Tp&, const _Tp&) const [with _Tp = {anonymous}::CandidateEvent]’: /usr/include/c++/10/bits/predefined_ops.h:194:23: required from ‘bool __gnu_cxx::__ops::_Iter_comp_val<_Compare>::operator()(_Iterator, _Value&) [with _Iterator = __gnu_cxx::__normal_iterator<{anonymous}::CandidateEvent*, std::vector<{anonymous}::CandidateEvent> >; _Value = {anonymous}::CandidateEvent; _Compare = std::greater<{anonymous}::CandidateEvent>]’ /usr/include/c++/10/bits/stl_heap.h:139:48: required from ‘void std::__push_heap(_RandomAccessIterator, _Distance, _Distance, _Tp, _Compare&) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<{anonymous}::CandidateEvent*, std::vector<{anonymous}::CandidateEvent> >; _Distance = long int; _Tp = {anonymous}::CandidateEvent; _Compare = __gnu_cxx::__ops::_Iter_comp_val >]’ /usr/include/c++/10/bits/stl_heap.h:215:23: required from ‘void std::push_heap(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<{anonymous}::CandidateEvent*, std::vector<{anonymous}::CandidateEvent> >; _Compare = std::greater<{anonymous}::CandidateEvent>]’ /usr/include/c++/10/bits/stl_queue.h:651:16: required from ‘void std::priority_queue<_Tp, _Sequence, _Compare>::push(std::priority_queue<_Tp, _Sequence, _Compare>::value_type&&) [with _Tp = {anonymous}::CandidateEvent; _Sequence = std::vector<{anonymous}::CandidateEvent>; _Compare = std::greater<{anonymous}::CandidateEvent>; std::priority_queue<_Tp, _Sequence, _Compare>::value_type = {anonymous}::CandidateEvent]’ src/bentley_ottmann.cpp:85:52: required from here /usr/include/c++/10/bits/stl_function.h:376:20: error: no match for ‘operator>’ (operand types are ‘const {anonymous}::CandidateEvent’ and ‘const {anonymous}::CandidateEvent’) 376 | { return __x > __y; } | ~~~~^~~~~ In file included from /usr/include/c++/10/bits/stl_algobase.h:64, from /usr/include/c++/10/vector:60, from include/bentley_ottmann.hpp:4, from src/bentley_ottmann.cpp:1: /usr/include/c++/10/bits/stl_pair.h:502:5: note: candidate: ‘template constexpr bool std::operator>(const std::pair<_T1, _T2>&, const std::pair<_T1, _T2>&)’ 502 | operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) | ^~~~~~~~ /usr/include/c++/10/bits/stl_pair.h:502:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/10/queue:63, from src/bentley_ottmann.cpp:4: /usr/include/c++/10/bits/stl_function.h:376:20: note: ‘const {anonymous}::CandidateEvent’ is not derived from ‘const std::pair<_T1, _T2>’ 376 | { return __x > __y; } | ~~~~^~~~~ In file included from /usr/include/c++/10/bits/stl_algobase.h:67, from /usr/include/c++/10/vector:60, from include/bentley_ottmann.hpp:4, from src/bentley_ottmann.cpp:1: /usr/include/c++/10/bits/stl_iterator.h:403:5: note: candidate: ‘template constexpr bool std::operator>(const std::reverse_iterator<_Iterator>&, const std::reverse_iterator<_Iterator>&)’ 403 | operator>(const reverse_iterator<_Iterator>& __x, | ^~~~~~~~ /usr/include/c++/10/bits/stl_iterator.h:403:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/10/queue:63, from src/bentley_ottmann.cpp:4: /usr/include/c++/10/bits/stl_function.h:376:20: note: ‘const {anonymous}::CandidateEvent’ is not derived from ‘const std::reverse_iterator<_Iterator>’ 376 | { return __x > __y; } | ~~~~^~~~~ In file included from /usr/include/c++/10/bits/stl_algobase.h:67, from /usr/include/c++/10/vector:60, from include/bentley_ottmann.hpp:4, from src/bentley_ottmann.cpp:1: /usr/include/c++/10/bits/stl_iterator.h:441:5: note: candidate: ‘template constexpr bool std::operator>(const std::reverse_iterator<_Iterator>&, const std::reverse_iterator<_IteratorR>&)’ 441 | operator>(const reverse_iterator<_IteratorL>& __x, | ^~~~~~~~ /usr/include/c++/10/bits/stl_iterator.h:441:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/10/queue:63, from src/bentley_ottmann.cpp:4: /usr/include/c++/10/bits/stl_function.h:376:20: note: ‘const {anonymous}::CandidateEvent’ is not derived from ‘const std::reverse_iterator<_Iterator>’ 376 | { return __x > __y; } | ~~~~^~~~~ In file included from /usr/include/c++/10/bits/stl_algobase.h:67, from /usr/include/c++/10/vector:60, from include/bentley_ottmann.hpp:4, from src/bentley_ottmann.cpp:1: /usr/include/c++/10/bits/stl_iterator.h:1502:5: note: candidate: ‘template constexpr bool std::operator>(const std::move_iterator<_IteratorL>&, const std::move_iterator<_IteratorR>&)’ 1502 | operator>(const move_iterator<_IteratorL>& __x, | ^~~~~~~~ /usr/include/c++/10/bits/stl_iterator.h:1502:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/10/queue:63, from src/bentley_ottmann.cpp:4: /usr/include/c++/10/bits/stl_function.h:376:20: note: ‘const {anonymous}::CandidateEvent’ is not derived from ‘const std::move_iterator<_IteratorL>’ 376 | { return __x > __y; } | ~~~~^~~~~ In file included from /usr/include/c++/10/bits/stl_algobase.h:67, from /usr/include/c++/10/vector:60, from include/bentley_ottmann.hpp:4, from src/bentley_ottmann.cpp:1: /usr/include/c++/10/bits/stl_iterator.h:1552:5: note: candidate: ‘template constexpr bool std::operator>(const std::move_iterator<_IteratorL>&, const std::move_iterator<_IteratorL>&)’ 1552 | operator>(const move_iterator<_Iterator>& __x, | ^~~~~~~~ /usr/include/c++/10/bits/stl_iterator.h:1552:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/10/queue:63, from src/bentley_ottmann.cpp:4: /usr/include/c++/10/bits/stl_function.h:376:20: note: ‘const {anonymous}::CandidateEvent’ is not derived from ‘const std::move_iterator<_IteratorL>’ 376 | { return __x > __y; } | ~~~~^~~~~ In file included from /usr/include/c++/10/vector:67, from include/bentley_ottmann.hpp:4, from src/bentley_ottmann.cpp:1: /usr/include/c++/10/bits/stl_vector.h:1943:5: note: candidate: ‘template bool std::operator>(const std::vector<_Tp, _Alloc>&, const std::vector<_Tp, _Alloc>&)’ 1943 | operator>(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) | ^~~~~~~~ /usr/include/c++/10/bits/stl_vector.h:1943:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/10/queue:63, from src/bentley_ottmann.cpp:4: /usr/include/c++/10/bits/stl_function.h:376:20: note: ‘const {anonymous}::CandidateEvent’ is not derived from ‘const std::vector<_Tp, _Alloc>’ 376 | { return __x > __y; } | ~~~~^~~~~ In file included from /usr/include/c++/10/deque:67, from /usr/include/c++/10/queue:60, from src/bentley_ottmann.cpp:4: /usr/include/c++/10/bits/stl_deque.h:2292:5: note: candidate: ‘template bool std::operator>(const std::deque<_Tp, _Alloc>&, const std::deque<_Tp, _Alloc>&)’ 2292 | operator>(const deque<_Tp, _Alloc>& __x, const deque<_Tp, _Alloc>& __y) | ^~~~~~~~ /usr/include/c++/10/bits/stl_deque.h:2292:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/10/queue:63, from src/bentley_ottmann.cpp:4: /usr/include/c++/10/bits/stl_function.h:376:20: note: ‘const {anonymous}::CandidateEvent’ is not derived from ‘const std::deque<_Tp, _Alloc>’ 376 | { return __x > __y; } | ~~~~^~~~~ In file included from /usr/include/c++/10/queue:64, from src/bentley_ottmann.cpp:4: /usr/include/c++/10/bits/stl_queue.h:374:5: note: candidate: ‘template bool std::operator>(const std::queue<_Tp, _Seq>&, const std::queue<_Tp, _Seq>&)’ 374 | operator>(const queue<_Tp, _Seq>& __x, const queue<_Tp, _Seq>& __y) | ^~~~~~~~ /usr/include/c++/10/bits/stl_queue.h:374:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/10/queue:63, from src/bentley_ottmann.cpp:4: /usr/include/c++/10/bits/stl_function.h:376:20: note: ‘const {anonymous}::CandidateEvent’ is not derived from ‘const std::queue<_Tp, _Seq>’ 376 | { return __x > __y; } | ~~~~^~~~~ src/bentley_ottmann.cpp:44:13: error: ‘FVector2D {anonymous}::get_intersection(FVector2D, FVector2D, FVector2D, FVector2D)’ defined but not used [-Werror=unused-function] 44 | FVector2D get_intersection(FVector2D a1, FVector2D a2, | ^~~~~~~~~~~~~~~~ src/bentley_ottmann.cpp:20:8: error: ‘bool {anonymous}::has_intersection(FVector2D, FVector2D, FVector2D, FVector2D)’ defined but not used [-Werror=unused-function] 20 | bool has_intersection(FVector2D a1,FVector2D a2, FVector2D b1,FVector2D b2) { | ^~~~~~~~~~~~~~~~ cc1plus: all warnings being treated as errors make: *** [GNUmakefile:9: obj/bentley_ottmann.o] Error 1