Main.cc: In function ‘int main()’: Main.cc:22:10: error: no match for ‘operator<’ (operand types are ‘std::basic_ostream’ and ‘’) cout< 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:454:5: note: template argument deduction/substitution failed: Main.cc:22:11: note: ‘std::basic_ostream’ is not derived from ‘const std::pair<_T1, _T2>’ cout< 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:308:5: note: template argument deduction/substitution failed: Main.cc:22:11: note: ‘std::basic_ostream’ is not derived from ‘const std::reverse_iterator<_Iterator>’ cout< 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:346:5: note: template argument deduction/substitution failed: Main.cc:22:11: note: ‘std::basic_ostream’ is not derived from ‘const std::reverse_iterator<_Iterator>’ cout< 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:1145:5: note: template argument deduction/substitution failed: Main.cc:22:11: note: ‘std::basic_ostream’ is not derived from ‘const std::move_iterator<_IteratorL>’ cout< 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:1151:5: note: template argument deduction/substitution failed: Main.cc:22:11: note: ‘std::basic_ostream’ is not derived from ‘const std::move_iterator<_IteratorL>’ cout< 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:6094:5: note: template argument deduction/substitution failed: Main.cc:22:11: note: ‘std::basic_ostream’ is not derived from ‘const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>’ cout< 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:6107:5: note: template argument deduction/substitution failed: Main.cc:22:11: note: ‘std::basic_ostream’ is not derived from ‘const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>’ cout< 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:6119:5: note: template argument deduction/substitution failed: Main.cc:22:11: note: mismatched types ‘const _CharT*’ and ‘std::basic_ostream’ cout<’ to ‘const std::error_code&’ /usr/include/c++/7/system_error:282:3: note: candidate: bool std::operator<(const std::error_condition&, const std::error_condition&) operator<(const error_condition& __lhs, ^~~~~~~~ /usr/include/c++/7/system_error:282:3: note: no known conversion for argument 1 from ‘std::basic_ostream’ to ‘const std::error_condition&’