CS253: Software Development with C++

Spring 2020

Syntax Errors

Show Lecture.SyntaxErrors as a slide show.

CS253 Syntax Errors


KEEP

CALM and FIND SYNTAX ERRORS

Syntax errors

Interpreting compiler syntax errors can take a bit of practice.

My algorithm:

  1. Note the line number in the error message.
  2. Look at that line in the source code.
  3. If that solved the problem, great, we’re done.
  4. Otherwise, read the error message.

Options

By default, without -Wfatal-errors, g++ will provide all manner of helpful suggestions:

vector<int> v;
cout << v;
c.cc:2: error: no match for 'operator<<' in 'std::cout << v' (operand types are 
   'std::ostream' {aka 'std::basic_ostream<char>'} and 'std::vector<int>')
In file included from /usr/include/c++/8/istream:39,
                 from /usr/include/c++/8/sstream:38,
                 from /usr/include/c++/8/complex:45,
                 from /usr/include/c++/8/ccomplex:39,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:52,
                 from c.cc:1:
/usr/include/c++/8/ostream:108: 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>]'
/usr/include/c++/8/ostream:108: note:   no known conversion for argument 1 from 
   'std::vector<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++/8/ostream:117: 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>]'
/usr/include/c++/8/ostream:117: note:   no known conversion for argument 1 from 
   'std::vector<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++/8/ostream:127: 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>]'
/usr/include/c++/8/ostream:127: note:   no known conversion for argument 1 from 
   'std::vector<int>' to 'std::ios_base& (*)(std::ios_base&)'
/usr/include/c++/8/ostream:166: 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>]'
/usr/include/c++/8/ostream:166: note:   no known conversion for argument 1 from 
   'std::vector<int>' to 'long int'
/usr/include/c++/8/ostream:170: 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>]'
/usr/include/c++/8/ostream:170: note:   no known conversion for argument 1 from 
   'std::vector<int>' to 'long unsigned int'
/usr/include/c++/8/ostream:174: 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>]'
/usr/include/c++/8/ostream:174: note:   no known conversion for argument 1 from 
   'std::vector<int>' to 'bool'
In file included from /usr/include/c++/8/ostream:696,
                 from /usr/include/c++/8/istream:39,
                 from /usr/include/c++/8/sstream:38,
                 from /usr/include/c++/8/complex:45,
                 from /usr/include/c++/8/ccomplex:39,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:52,
                 from c.cc:1:
/usr/include/c++/8/bits/ostream.tcc:91: note: candidate: 
   'std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, 
   _Traits>::operator<<(short int) [with _CharT = char; _Traits = 
   std::char_traits<char>]'
/usr/include/c++/8/bits/ostream.tcc:91: note:   no known conversion for 
   argument 1 from 'std::vector<int>' to 'short int'
In file included from /usr/include/c++/8/istream:39,
                 from /usr/include/c++/8/sstream:38,
                 from /usr/include/c++/8/complex:45,
                 from /usr/include/c++/8/ccomplex:39,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:52,
                 from c.cc:1:
/usr/include/c++/8/ostream:181: 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>]'
/usr/include/c++/8/ostream:181: note:   no known conversion for argument 1 from 
   'std::vector<int>' to 'short unsigned int'
In file included from /usr/include/c++/8/ostream:696,
                 from /usr/include/c++/8/istream:39,
                 from /usr/include/c++/8/sstream:38,
                 from /usr/include/c++/8/complex:45,
                 from /usr/include/c++/8/ccomplex:39,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:52,
                 from c.cc:1:
/usr/include/c++/8/bits/ostream.tcc:105: note: candidate: 
   'std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, 
   _Traits>::operator<<(int) [with _CharT = char; _Traits = 
   std::char_traits<char>]'
/usr/include/c++/8/bits/ostream.tcc:105: note:   no known conversion for 
   argument 1 from 'std::vector<int>' to 'int'
In file included from /usr/include/c++/8/istream:39,
                 from /usr/include/c++/8/sstream:38,
                 from /usr/include/c++/8/complex:45,
                 from /usr/include/c++/8/ccomplex:39,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:52,
                 from c.cc:1:
/usr/include/c++/8/ostream:192: 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>]'
/usr/include/c++/8/ostream:192: note:   no known conversion for argument 1 from 
   'std::vector<int>' to 'unsigned int'
/usr/include/c++/8/ostream:201: 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>]'
/usr/include/c++/8/ostream:201: note:   no known conversion for argument 1 from 
   'std::vector<int>' to 'long long int'
/usr/include/c++/8/ostream:205: 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>]'
/usr/include/c++/8/ostream:205: note:   no known conversion for argument 1 from 
   'std::vector<int>' to 'long long unsigned int'
/usr/include/c++/8/ostream:220: 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>]'
/usr/include/c++/8/ostream:220: note:   no known conversion for argument 1 from 
   'std::vector<int>' to 'double'
/usr/include/c++/8/ostream:224: 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>]'
/usr/include/c++/8/ostream:224: note:   no known conversion for argument 1 from 
   'std::vector<int>' to 'float'
/usr/include/c++/8/ostream:232: 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>]'
/usr/include/c++/8/ostream:232: note:   no known conversion for argument 1 from 
   'std::vector<int>' to 'long double'
/usr/include/c++/8/ostream:245: 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>]'
/usr/include/c++/8/ostream:245: note:   no known conversion for argument 1 from 
   'std::vector<int>' to 'const void*'
In file included from /usr/include/c++/8/ostream:696,
                 from /usr/include/c++/8/istream:39,
                 from /usr/include/c++/8/sstream:38,
                 from /usr/include/c++/8/complex:45,
                 from /usr/include/c++/8/ccomplex:39,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:52,
                 from c.cc:1:
/usr/include/c++/8/bits/ostream.tcc:119: 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>]'
/usr/include/c++/8/bits/ostream.tcc:119: note:   no known conversion for 
   argument 1 from 'std::vector<int>' to 
   'std::basic_ostream<char>::__streambuf_type*' {aka 
   'std::basic_streambuf<char>*'}
In file included from /usr/include/c++/8/regex:62,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:110,
                 from c.cc:1:
/usr/include/c++/8/bits/regex.h:1523: note: candidate: 'template<class 
   _Ch_type, class _Ch_traits, class _Bi_iter> std::basic_ostream<_CharT, 
   _Traits>& std::__cxx11::operator<<(std::basic_ostream<_CharT, _Traits>&, 
   const std::__cxx11::sub_match<_Bi_iter>&)'
/usr/include/c++/8/bits/regex.h:1523: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   'std::vector<int>' is not derived from 'const 
   std::__cxx11::sub_match<_Bi_iter>'
In file included from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:45,
                 from c.cc:1:
/usr/include/c++/8/cstddef:124: note: candidate: 'template<class _IntegerType> 
   constexpr std::__byte_op_t<_IntegerType> std::operator<<(std::byte, 
   _IntegerType)'
/usr/include/c++/8/cstddef:124: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   cannot convert 'std::cout' (type 'std::ostream' {aka 
   'std::basic_ostream<char>'}) to type 'std::byte'
In file included from /usr/include/c++/8/bits/basic_string.h:48,
                 from /usr/include/c++/8/string:52,
                 from /usr/include/c++/8/bits/locale_classes.h:40,
                 from /usr/include/c++/8/bits/ios_base.h:41,
                 from /usr/include/c++/8/ios:42,
                 from /usr/include/c++/8/istream:38,
                 from /usr/include/c++/8/sstream:38,
                 from /usr/include/c++/8/complex:45,
                 from /usr/include/c++/8/ccomplex:39,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:52,
                 from c.cc:1:
/usr/include/c++/8/string_view:545: 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>)'
/usr/include/c++/8/string_view:545: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   'std::vector<int>' is not derived from 
   'std::basic_string_view<_CharT, _Traits>'
In file included from /usr/include/c++/8/string:52,
                 from /usr/include/c++/8/bits/locale_classes.h:40,
                 from /usr/include/c++/8/bits/ios_base.h:41,
                 from /usr/include/c++/8/ios:42,
                 from /usr/include/c++/8/istream:38,
                 from /usr/include/c++/8/sstream:38,
                 from /usr/include/c++/8/complex:45,
                 from /usr/include/c++/8/ccomplex:39,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:52,
                 from c.cc:1:
/usr/include/c++/8/bits/basic_string.h:6323: note: candidate: 'template<class 
   _CharT, class _Traits, class _Alloc> std::basic_ostream<_CharT, _Traits>& 
   std::operator<<(std::basic_ostream<_CharT, _Traits>&, const 
   std::__cxx11::basic_string<_CharT, _Traits, _Allocator>&)'
/usr/include/c++/8/bits/basic_string.h:6323: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   'std::vector<int>' is not derived from 'const 
   std::__cxx11::basic_string<_CharT, _Traits, _Allocator>'
In file included from /usr/include/c++/8/bits/ios_base.h:46,
                 from /usr/include/c++/8/ios:42,
                 from /usr/include/c++/8/istream:38,
                 from /usr/include/c++/8/sstream:38,
                 from /usr/include/c++/8/complex:45,
                 from /usr/include/c++/8/ccomplex:39,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:52,
                 from c.cc:1:
/usr/include/c++/8/system_error:217: note: candidate: 'template<class _CharT, 
   class _Traits> std::basic_ostream<_CharT, _Traits>& 
   std::operator<<(std::basic_ostream<_CharT, _Traits>&, const 
   std::error_code&)'
/usr/include/c++/8/system_error:217: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   cannot convert 'v' (type 'std::vector<int>') to type 'const 
   std::error_code&'
In file included from /usr/include/c++/8/istream:39,
                 from /usr/include/c++/8/sstream:38,
                 from /usr/include/c++/8/complex:45,
                 from /usr/include/c++/8/ccomplex:39,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:52,
                 from c.cc:1:
/usr/include/c++/8/ostream:500: note: candidate: 'template<class _CharT, class 
   _Traits> std::basic_ostream<_CharT, _Traits>& 
   std::operator<<(std::basic_ostream<_CharT, _Traits>&, _CharT)'
/usr/include/c++/8/ostream:500: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   deduced conflicting types for parameter '_CharT' ('char' and 
   'std::vector<int>')
In file included from /usr/include/c++/8/istream:39,
                 from /usr/include/c++/8/sstream:38,
                 from /usr/include/c++/8/complex:45,
                 from /usr/include/c++/8/ccomplex:39,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:52,
                 from c.cc:1:
/usr/include/c++/8/ostream:505: note: candidate: 'template<class _CharT, class 
   _Traits> std::basic_ostream<_CharT, _Traits>& 
   std::operator<<(std::basic_ostream<_CharT, _Traits>&, char)'
/usr/include/c++/8/ostream:505: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   cannot convert 'v' (type 'std::vector<int>') to type 'char'
In file included from /usr/include/c++/8/istream:39,
                 from /usr/include/c++/8/sstream:38,
                 from /usr/include/c++/8/complex:45,
                 from /usr/include/c++/8/ccomplex:39,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:52,
                 from c.cc:1:
/usr/include/c++/8/ostream:511: note: candidate: 'template<class _Traits> 
   std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, 
   _Traits>&, char)'
/usr/include/c++/8/ostream:511: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   cannot convert 'v' (type 'std::vector<int>') to type 'char'
In file included from /usr/include/c++/8/istream:39,
                 from /usr/include/c++/8/sstream:38,
                 from /usr/include/c++/8/complex:45,
                 from /usr/include/c++/8/ccomplex:39,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:52,
                 from c.cc:1:
/usr/include/c++/8/ostream:517: note: candidate: 'template<class _Traits> 
   std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, 
   _Traits>&, signed char)'
/usr/include/c++/8/ostream:517: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   cannot convert 'v' (type 'std::vector<int>') to type 'signed 
   char'
In file included from /usr/include/c++/8/istream:39,
                 from /usr/include/c++/8/sstream:38,
                 from /usr/include/c++/8/complex:45,
                 from /usr/include/c++/8/ccomplex:39,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:52,
                 from c.cc:1:
/usr/include/c++/8/ostream:522: note: candidate: 'template<class _Traits> 
   std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, 
   _Traits>&, unsigned char)'
/usr/include/c++/8/ostream:522: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   cannot convert 'v' (type 'std::vector<int>') to type 'unsigned 
   char'
In file included from /usr/include/c++/8/istream:39,
                 from /usr/include/c++/8/sstream:38,
                 from /usr/include/c++/8/complex:45,
                 from /usr/include/c++/8/ccomplex:39,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:52,
                 from c.cc:1:
/usr/include/c++/8/ostream:542: note: candidate: 'template<class _CharT, class 
   _Traits> std::basic_ostream<_CharT, _Traits>& 
   std::operator<<(std::basic_ostream<_CharT, _Traits>&, const _CharT*)'
/usr/include/c++/8/ostream:542: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   mismatched types 'const _CharT*' and 'std::vector<int>'
In file included from /usr/include/c++/8/ostream:696,
                 from /usr/include/c++/8/istream:39,
                 from /usr/include/c++/8/sstream:38,
                 from /usr/include/c++/8/complex:45,
                 from /usr/include/c++/8/ccomplex:39,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:52,
                 from c.cc:1:
/usr/include/c++/8/bits/ostream.tcc:321: note: candidate: 'template<class 
   _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& 
   std::operator<<(std::basic_ostream<_CharT, _Traits>&, const char*)'
/usr/include/c++/8/bits/ostream.tcc:321: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   cannot convert 'v' (type 'std::vector<int>') to type 'const 
   char*'
In file included from /usr/include/c++/8/istream:39,
                 from /usr/include/c++/8/sstream:38,
                 from /usr/include/c++/8/complex:45,
                 from /usr/include/c++/8/ccomplex:39,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:52,
                 from c.cc:1:
/usr/include/c++/8/ostream:559: note: candidate: 'template<class _Traits> 
   std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, 
   _Traits>&, const char*)'
/usr/include/c++/8/ostream:559: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   cannot convert 'v' (type 'std::vector<int>') to type 'const 
   char*'
In file included from /usr/include/c++/8/istream:39,
                 from /usr/include/c++/8/sstream:38,
                 from /usr/include/c++/8/complex:45,
                 from /usr/include/c++/8/ccomplex:39,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:52,
                 from c.cc:1:
/usr/include/c++/8/ostream:572: note: candidate: 'template<class _Traits> 
   std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, 
   _Traits>&, const signed char*)'
/usr/include/c++/8/ostream:572: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   cannot convert 'v' (type 'std::vector<int>') to type 'const 
   signed char*'
In file included from /usr/include/c++/8/istream:39,
                 from /usr/include/c++/8/sstream:38,
                 from /usr/include/c++/8/complex:45,
                 from /usr/include/c++/8/ccomplex:39,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:52,
                 from c.cc:1:
/usr/include/c++/8/ostream:577: note: candidate: 'template<class _Traits> 
   std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, 
   _Traits>&, const unsigned char*)'
/usr/include/c++/8/ostream:577: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   cannot convert 'v' (type 'std::vector<int>') to type 'const 
   unsigned char*'
In file included from /usr/include/c++/8/istream:39,
                 from /usr/include/c++/8/sstream:38,
                 from /usr/include/c++/8/complex:45,
                 from /usr/include/c++/8/ccomplex:39,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:52,
                 from c.cc:1:
/usr/include/c++/8/ostream:685: note: candidate: 'template<class _Ostream, 
   class _Tp> typename 
   std::enable_if<std::__and_<std::__not_<std::is_lvalue_reference<_Tp> >, 
   std::__is_convertible_to_basic_ostream<_Ostream>, 
   std::__is_insertable<typename 
   std::__is_convertible_to_basic_ostream<_Tp>::__ostream_type, const _Tp&, 
   void> >::value, typename 
   std::__is_convertible_to_basic_ostream<_Tp>::__ostream_type>::type 
   std::operator<<(_Ostream&&, const _Tp&)'
/usr/include/c++/8/ostream:685: note:   template argument 
   deduction/substitution failed:
/usr/include/c++/8/ostream: In substitution of 'template<class _Ostream, class _Tp> typename std::enable_if<std::__and_<std::__not_<std::is_lvalue_reference<_Tp> >, std::__is_convertible_to_basic_ostream<_Ostream>, std::__is_insertable<typename std::__is_convertible_to_basic_ostream<_Tp>::__ostream_type, const _Tp&, void> >::value, typename std::__is_convertible_to_basic_ostream<_Tp>::__ostream_type>::type std::operator<<(_Ostream&&, const _Tp&) [with _Ostream = std::basic_ostream<char>&; _Tp = std::vector<int>]':
c.cc:2:   required from here
/usr/include/c++/8/ostream:685: error: no type named 'type' in 'struct 
   std::enable_if<false, std::basic_ostream<char>&>'
In file included from /usr/include/c++/8/ccomplex:39,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:52,
                 from c.cc:1:
/usr/include/c++/8/complex:547: note: candidate: 'template<class _Tp, class 
   _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& 
   std::operator<<(std::basic_ostream<_CharT, _Traits>&, const 
   std::complex<_Tp>&)'
/usr/include/c++/8/complex:547: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   'std::vector<int>' is not derived from 'const 
   std::complex<_Tp>'
In file included from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:66,
                 from c.cc:1:
/usr/include/c++/8/bitset:1534: note: candidate: 'template<class _CharT, class 
   _Traits, long unsigned int _Nb> std::basic_ostream<_CharT, _Traits>& 
   std::operator<<(std::basic_ostream<_CharT, _Traits>&, const 
   std::bitset<_Nb>&)'
/usr/include/c++/8/bitset:1534: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   'std::vector<int>' is not derived from 'const std::bitset<_Nb>'
In file included from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:72,
                 from c.cc:1:
/usr/include/c++/8/iomanip:79: note: candidate: 'template<class _CharT, class 
   _Traits> std::basic_ostream<_CharT, _Traits>& 
   std::operator<<(std::basic_ostream<_CharT, _Traits>&, std::_Resetiosflags)'
/usr/include/c++/8/iomanip:79: note:   template argument deduction/substitution 
   failed:
c.cc:2: note:   cannot convert 'v' (type 'std::vector<int>') to type 
   'std::_Resetiosflags'
In file included from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:72,
                 from c.cc:1:
/usr/include/c++/8/iomanip:109: note: candidate: 'template<class _CharT, class 
   _Traits> std::basic_ostream<_CharT, _Traits>& 
   std::operator<<(std::basic_ostream<_CharT, _Traits>&, std::_Setiosflags)'
/usr/include/c++/8/iomanip:109: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   cannot convert 'v' (type 'std::vector<int>') to type 
   'std::_Setiosflags'
In file included from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:72,
                 from c.cc:1:
/usr/include/c++/8/iomanip:143: note: candidate: 'template<class _CharT, class 
   _Traits> std::basic_ostream<_CharT, _Traits>& 
   std::operator<<(std::basic_ostream<_CharT, _Traits>&, std::_Setbase)'
/usr/include/c++/8/iomanip:143: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   cannot convert 'v' (type 'std::vector<int>') to type 
   'std::_Setbase'
In file included from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:72,
                 from c.cc:1:
/usr/include/c++/8/iomanip:178: note: candidate: 'template<class _CharT, class 
   _Traits> std::basic_ostream<_CharT, _Traits>& 
   std::operator<<(std::basic_ostream<_CharT, _Traits>&, 
   std::_Setfill<_CharT>)'
/usr/include/c++/8/iomanip:178: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   'std::vector<int>' is not derived from 'std::_Setfill<_CharT>'
In file included from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:72,
                 from c.cc:1:
/usr/include/c++/8/iomanip:208: note: candidate: 'template<class _CharT, class 
   _Traits> std::basic_ostream<_CharT, _Traits>& 
   std::operator<<(std::basic_ostream<_CharT, _Traits>&, std::_Setprecision)'
/usr/include/c++/8/iomanip:208: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   cannot convert 'v' (type 'std::vector<int>') to type 
   'std::_Setprecision'
In file included from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:72,
                 from c.cc:1:
/usr/include/c++/8/iomanip:238: note: candidate: 'template<class _CharT, class 
   _Traits> std::basic_ostream<_CharT, _Traits>& 
   std::operator<<(std::basic_ostream<_CharT, _Traits>&, std::_Setw)'
/usr/include/c++/8/iomanip:238: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   cannot convert 'v' (type 'std::vector<int>') to type 
   'std::_Setw'
In file included from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:72,
                 from c.cc:1:
/usr/include/c++/8/iomanip:311: note: candidate: 'template<class _CharT, class 
   _Traits, class _MoneyT> std::basic_ostream<_CharT, _Traits>& 
   std::operator<<(std::basic_ostream<_CharT, _Traits>&, 
   std::_Put_money<_MoneyT>)'
/usr/include/c++/8/iomanip:311: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   'std::vector<int>' is not derived from 
   'std::_Put_money<_MoneyT>'
In file included from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:72,
                 from c.cc:1:
/usr/include/c++/8/iomanip:363: note: candidate: 'template<class _CharT, class 
   _Traits> std::basic_ostream<_CharT, _Traits>& 
   std::operator<<(std::basic_ostream<_CharT, _Traits>&, 
   std::_Put_time<_CharT>)'
/usr/include/c++/8/iomanip:363: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   'std::vector<int>' is not derived from 'std::_Put_time<_CharT>'
In file included from /usr/include/c++/8/memory:81,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:82,
                 from c.cc:1:
/usr/include/c++/8/bits/shared_ptr.h:66: note: candidate: 'template<class _Ch, 
   class _Tr, class _Tp, __gnu_cxx::_Lock_policy _Lp> 
   std::basic_ostream<_CharT, _Traits>& 
   std::operator<<(std::basic_ostream<_CharT, _Traits>&, const 
   std::__shared_ptr<_Tp, _Lp>&)'
/usr/include/c++/8/bits/shared_ptr.h:66: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   'std::vector<int>' is not derived from 'const 
   std::__shared_ptr<_Tp, _Lp>'
In file included from /usr/include/c++/8/valarray:592,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:95,
                 from c.cc:1:
/usr/include/c++/8/bits/valarray_after.h:410: note: candidate: 'template<class 
   _Dom1, class _Dom2> std::_Expr<std::_BinClos<std::__shift_left, std::_Expr, 
   std::_Expr, _Dom1, _Dom2>, typename std::__fun<std::__shift_left, typename 
   _Dom1::value_type>::result_type> std::operator<<(const std::_Expr<_Dom1, 
   typename _Dom1::value_type>&, const std::_Expr<_Dom2, typename 
   _Dom2::value_type>&)'
/usr/include/c++/8/bits/valarray_after.h:410: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   'std::ostream' {aka 'std::basic_ostream<char>'} is not derived 
   from 'const std::_Expr<_Dom1, typename _Dom1::value_type>'
In file included from /usr/include/c++/8/valarray:592,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:95,
                 from c.cc:1:
/usr/include/c++/8/bits/valarray_after.h:410: note: candidate: 'template<class 
   _Dom> std::_Expr<std::_BinClos<std::__shift_left, std::_Expr, 
   std::_Constant, _Dom, typename _Dom::value_type>, typename 
   std::__fun<std::__shift_left, typename _Dom1::value_type>::result_type> 
   std::operator<<(const std::_Expr<_Dom1, typename _Dom1::value_type>&, const 
   typename _Dom::value_type&)'
/usr/include/c++/8/bits/valarray_after.h:410: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   'std::ostream' {aka 'std::basic_ostream<char>'} is not derived 
   from 'const std::_Expr<_Dom1, typename _Dom1::value_type>'
In file included from /usr/include/c++/8/valarray:592,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:95,
                 from c.cc:1:
/usr/include/c++/8/bits/valarray_after.h:410: note: candidate: 'template<class 
   _Dom> std::_Expr<std::_BinClos<std::__shift_left, std::_Constant, 
   std::_Expr, typename _Dom::value_type, _Dom>, typename 
   std::__fun<std::__shift_left, typename _Dom1::value_type>::result_type> 
   std::operator<<(const typename _Dom::value_type&, const std::_Expr<_Dom1, 
   typename _Dom1::value_type>&)'
/usr/include/c++/8/bits/valarray_after.h:410: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   'std::vector<int>' is not derived from 'const std::_Expr<_Dom1, 
   typename _Dom1::value_type>'
In file included from /usr/include/c++/8/valarray:592,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:95,
                 from c.cc:1:
/usr/include/c++/8/bits/valarray_after.h:410: note: candidate: 'template<class 
   _Dom> std::_Expr<std::_BinClos<std::__shift_left, std::_Expr, 
   std::_ValArray, _Dom, typename _Dom::value_type>, typename 
   std::__fun<std::__shift_left, typename _Dom1::value_type>::result_type> 
   std::operator<<(const std::_Expr<_Dom1, typename _Dom1::value_type>&, const 
   std::valarray<typename _Dom::value_type>&)'
/usr/include/c++/8/bits/valarray_after.h:410: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   'std::ostream' {aka 'std::basic_ostream<char>'} is not derived 
   from 'const std::_Expr<_Dom1, typename _Dom1::value_type>'
In file included from /usr/include/c++/8/valarray:592,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:95,
                 from c.cc:1:
/usr/include/c++/8/bits/valarray_after.h:410: note: candidate: 'template<class 
   _Dom> std::_Expr<std::_BinClos<std::__shift_left, std::_ValArray, 
   std::_Expr, typename _Dom::value_type, _Dom>, typename 
   std::__fun<std::__shift_left, typename _Dom1::value_type>::result_type> 
   std::operator<<(const std::valarray<typename _Dom::value_type>&, const 
   std::_Expr<_Dom1, typename _Dom1::value_type>&)'
/usr/include/c++/8/bits/valarray_after.h:410: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   'std::vector<int>' is not derived from 'const std::_Expr<_Dom1, 
   typename _Dom1::value_type>'
In file included from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:95,
                 from c.cc:1:
/usr/include/c++/8/valarray:1180: note: candidate: 'template<class _Tp> 
   std::_Expr<std::_BinClos<std::__shift_left, std::_ValArray, std::_ValArray, 
   _Tp, _Tp>, typename std::__fun<std::__shift_left, _Tp>::result_type> 
   std::operator<<(const std::valarray<_Tp>&, const std::valarray<_Tp>&)'
/usr/include/c++/8/valarray:1180: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   'std::ostream' {aka 'std::basic_ostream<char>'} is not derived 
   from 'const std::valarray<_Tp>'
In file included from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:95,
                 from c.cc:1:
/usr/include/c++/8/valarray:1180: note: candidate: 'template<class _Tp> 
   std::_Expr<std::_BinClos<std::__shift_left, std::_ValArray, std::_Constant, 
   _Tp, _Tp>, typename std::__fun<std::__shift_left, _Tp>::result_type> 
   std::operator<<(const std::valarray<_Tp>&, const _Tp&)'
/usr/include/c++/8/valarray:1180: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   'std::ostream' {aka 'std::basic_ostream<char>'} is not derived 
   from 'const std::valarray<_Tp>'
In file included from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:95,
                 from c.cc:1:
/usr/include/c++/8/valarray:1180: note: candidate: 'template<class _Tp> 
   std::_Expr<std::_BinClos<std::__shift_left, std::_Constant, std::_ValArray, 
   _Tp, _Tp>, typename std::__fun<std::__shift_left, _Tp>::result_type> 
   std::operator<<(const _Tp&, const std::valarray<_Tp>&)'
/usr/include/c++/8/valarray:1180: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   'std::vector<int>' is not derived from 'const 
   std::valarray<_Tp>'
In file included from /usr/include/c++/8/future:39,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:105,
                 from c.cc:1:
/usr/include/c++/8/thread:323: note: candidate: 'template<class _CharT, class 
   _Traits> std::basic_ostream<_CharT, _Traits>& 
   std::operator<<(std::basic_ostream<_CharT, _Traits>&, std::thread::id)'
/usr/include/c++/8/thread:323: note:   template argument deduction/substitution 
   failed:
c.cc:2: note:   cannot convert 'v' (type 'std::vector<int>') to type 
   'std::thread::id'
In file included from /usr/include/c++/8/random:49,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:108,
                 from c.cc:1:
/usr/include/c++/8/bits/random.h:1262: note: candidate: 'template<class 
   _RandomNumberEngine, long unsigned int __w, class _UIntType, class _CharT, 
   class _Traits> std::basic_ostream<_CharT, _Traits>& 
   std::operator<<(std::basic_ostream<_CharT, _Traits>&, const 
   std::independent_bits_engine<_RandomNumberEngine, __w, _UIntType>&)'
/usr/include/c++/8/bits/random.h:1262: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   'std::vector<int>' is not derived from 'const 
   std::independent_bits_engine<_RandomNumberEngine, __w, _UIntType>'
In file included from /usr/include/c++/8/random:51,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:108,
                 from c.cc:1:
/usr/include/c++/8/bits/random.tcc:874: note: candidate: 'template<class 
   _IntType, class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& 
   std::operator<<(std::basic_ostream<_CharT, _Traits>&, const 
   std::uniform_int_distribution<_IntType>&)'
/usr/include/c++/8/bits/random.tcc:874: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   'std::vector<int>' is not derived from 'const 
   std::uniform_int_distribution<_IntType>'
In file included from /usr/include/c++/8/random:51,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:108,
                 from c.cc:1:
/usr/include/c++/8/bits/random.tcc:933: note: candidate: 'template<class 
   _RealType, class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& 
   std::operator<<(std::basic_ostream<_CharT, _Traits>&, const 
   std::uniform_real_distribution<_IntType>&)'
/usr/include/c++/8/bits/random.tcc:933: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   'std::vector<int>' is not derived from 'const 
   std::uniform_real_distribution<_IntType>'
In file included from /usr/include/c++/8/random:51,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:108,
                 from c.cc:1:
/usr/include/c++/8/bits/random.tcc:2126: note: candidate: 'template<class 
   _RealType, class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& 
   std::operator<<(std::basic_ostream<_CharT, _Traits>&, const 
   std::cauchy_distribution<_RealType>&)'
/usr/include/c++/8/bits/random.tcc:2126: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   'std::vector<int>' is not derived from 'const 
   std::cauchy_distribution<_RealType>'
In file included from /usr/include/c++/8/random:51,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:108,
                 from c.cc:1:
/usr/include/c++/8/bits/random.tcc:995: note: candidate: 'template<class 
   _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& 
   std::operator<<(std::basic_ostream<_CharT, _Traits>&, const 
   std::bernoulli_distribution&)'
/usr/include/c++/8/bits/random.tcc:995: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   cannot convert 'v' (type 'std::vector<int>') to type 'const 
   std::bernoulli_distribution&'
In file included from /usr/include/c++/8/random:51,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:108,
                 from c.cc:1:
/usr/include/c++/8/bits/random.tcc:1077: note: candidate: 'template<class 
   _IntType, class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& 
   std::operator<<(std::basic_ostream<_CharT, _Traits>&, const 
   std::geometric_distribution<_IntType>&)'
/usr/include/c++/8/bits/random.tcc:1077: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   'std::vector<int>' is not derived from 'const 
   std::geometric_distribution<_IntType>'
In file included from /usr/include/c++/8/random:51,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:108,
                 from c.cc:1:
/usr/include/c++/8/bits/random.tcc:1734: note: candidate: 'template<class 
   _RealType, class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& 
   std::operator<<(std::basic_ostream<_CharT, _Traits>&, const 
   std::exponential_distribution<_RealType>&)'
/usr/include/c++/8/bits/random.tcc:1734: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   'std::vector<int>' is not derived from 'const 
   std::exponential_distribution<_RealType>'
In file included from /usr/include/c++/8/random:51,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:108,
                 from c.cc:1:
/usr/include/c++/8/bits/random.tcc:2525: note: candidate: 'template<class 
   _RealType, class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& 
   std::operator<<(std::basic_ostream<_CharT, _Traits>&, const 
   std::weibull_distribution<_RealType>&)'
/usr/include/c++/8/bits/random.tcc:2525: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   'std::vector<int>' is not derived from 'const 
   std::weibull_distribution<_RealType>'
In file included from /usr/include/c++/8/random:51,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:108,
                 from c.cc:1:
/usr/include/c++/8/bits/random.tcc:2601: note: candidate: 'template<class 
   _RealType, class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& 
   std::operator<<(std::basic_ostream<_CharT, _Traits>&, const 
   std::extreme_value_distribution<_RealType>&)'
/usr/include/c++/8/bits/random.tcc:2601: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   'std::vector<int>' is not derived from 'const 
   std::extreme_value_distribution<_RealType>'
In file included from /usr/include/c++/8/random:51,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:108,
                 from c.cc:1:
/usr/include/c++/8/bits/random.tcc:153: note: candidate: 'template<class 
   _UIntType, _UIntType __a, _UIntType __c, _UIntType __m, class _CharT, class 
   _Traits> std::basic_ostream<_CharT, _Traits>& 
   std::operator<<(std::basic_ostream<_CharT, _Traits>&, const 
   std::linear_congruential_engine<_UIntType, __a, __c, __m>&)'
/usr/include/c++/8/bits/random.tcc:153: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   'std::vector<int>' is not derived from 'const 
   std::linear_congruential_engine<_UIntType, __a, __c, __m>'
In file included from /usr/include/c++/8/random:51,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:108,
                 from c.cc:1:
/usr/include/c++/8/bits/random.tcc:474: note: candidate: 'template<class 
   _UIntType1, long unsigned int __w1, long unsigned int __n1, long unsigned 
   int __m1, long unsigned int __r1, _UIntType1 __a1, long unsigned int __u1, 
   _UIntType1 __d1, long unsigned int __s1, _UIntType1 __b1, long unsigned int 
   __t1, _UIntType1 __c1, long unsigned int __l1, _UIntType1 __f1, class 
   _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& 
   std::operator<<(std::basic_ostream<_CharT, _Traits>&, const 
   std::mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, 
   __s, __b, __t, __c, __l, __f>&)'
/usr/include/c++/8/bits/random.tcc:474: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   'std::vector<int>' is not derived from 'const 
   std::mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, 
   __s, __b, __t, __c, __l, __f>'
In file included from /usr/include/c++/8/random:51,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:108,
                 from c.cc:1:
/usr/include/c++/8/bits/random.tcc:629: note: candidate: 'template<class 
   _UIntType, long unsigned int __w, long unsigned int __s, long unsigned int 
   __r, class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& 
   std::operator<<(std::basic_ostream<_CharT, _Traits>&, const 
   std::subtract_with_carry_engine<_UIntType, __w, __s, __r>&)'
/usr/include/c++/8/bits/random.tcc:629: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   'std::vector<int>' is not derived from 'const 
   std::subtract_with_carry_engine<_UIntType, __w, __s, __r>'
In file included from /usr/include/c++/8/random:51,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:108,
                 from c.cc:1:
/usr/include/c++/8/bits/random.tcc:699: note: candidate: 'template<class 
   _RandomNumberEngine, long unsigned int __p, long unsigned int __r, class 
   _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& 
   std::operator<<(std::basic_ostream<_CharT, _Traits>&, const 
   std::discard_block_engine<_RandomNumberEngine, __p, __r>&)'
/usr/include/c++/8/bits/random.tcc:699: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   'std::vector<int>' is not derived from 'const 
   std::discard_block_engine<_RandomNumberEngine, __p, __r>'
In file included from /usr/include/c++/8/random:51,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:108,
                 from c.cc:1:
/usr/include/c++/8/bits/random.tcc:828: note: candidate: 'template<class 
   _RandomNumberEngine, long unsigned int __k, class _CharT, class _Traits> 
   std::basic_ostream<_CharT, _Traits>& 
   std::operator<<(std::basic_ostream<_CharT, _Traits>&, const 
   std::shuffle_order_engine<_RandomNumberEngine, __k>&)'
/usr/include/c++/8/bits/random.tcc:828: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   'std::vector<int>' is not derived from 'const 
   std::shuffle_order_engine<_RandomNumberEngine, __k>'
In file included from /usr/include/c++/8/random:51,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:108,
                 from c.cc:1:
/usr/include/c++/8/bits/random.tcc:1192: note: candidate: 'template<class 
   _IntType, class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& 
   std::operator<<(std::basic_ostream<_CharT, _Traits>&, const 
   std::negative_binomial_distribution<_IntType>&)'
/usr/include/c++/8/bits/random.tcc:1192: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   'std::vector<int>' is not derived from 'const 
   std::negative_binomial_distribution<_IntType>'
In file included from /usr/include/c++/8/random:51,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:108,
                 from c.cc:1:
/usr/include/c++/8/bits/random.tcc:1403: note: candidate: 'template<class 
   _IntType, class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& 
   std::operator<<(std::basic_ostream<_CharT, _Traits>&, const 
   std::poisson_distribution<_IntType>&)'
/usr/include/c++/8/bits/random.tcc:1403: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   'std::vector<int>' is not derived from 'const 
   std::poisson_distribution<_IntType>'
In file included from /usr/include/c++/8/random:51,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:108,
                 from c.cc:1:
/usr/include/c++/8/bits/random.tcc:1670: note: candidate: 'template<class 
   _IntType, class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& 
   std::operator<<(std::basic_ostream<_CharT, _Traits>&, const 
   std::binomial_distribution<_IntType>&)'
/usr/include/c++/8/bits/random.tcc:1670: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   'std::vector<int>' is not derived from 'const 
   std::binomial_distribution<_IntType>'
In file included from /usr/include/c++/8/random:51,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:108,
                 from c.cc:1:
/usr/include/c++/8/bits/random.tcc:1901: note: candidate: 'template<class 
   _RealType1, class _CharT, class _Traits> std::basic_ostream<_CharT, 
   _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const 
   std::normal_distribution<_RealType>&)'
/usr/include/c++/8/bits/random.tcc:1901: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   'std::vector<int>' is not derived from 'const 
   std::normal_distribution<_RealType>'
In file included from /usr/include/c++/8/random:51,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:108,
                 from c.cc:1:
/usr/include/c++/8/bits/random.tcc:1966: note: candidate: 'template<class 
   _RealType, class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& 
   std::operator<<(std::basic_ostream<_CharT, _Traits>&, const 
   std::lognormal_distribution<_RealType>&)'
/usr/include/c++/8/bits/random.tcc:1966: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   'std::vector<int>' is not derived from 'const 
   std::lognormal_distribution<_RealType>'
In file included from /usr/include/c++/8/random:51,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:108,
                 from c.cc:1:
/usr/include/c++/8/bits/random.tcc:2039: note: candidate: 'template<class 
   _RealType, class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& 
   std::operator<<(std::basic_ostream<_CharT, _Traits>&, const 
   std::chi_squared_distribution<_RealType>&)'
/usr/include/c++/8/bits/random.tcc:2039: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   'std::vector<int>' is not derived from 'const 
   std::chi_squared_distribution<_RealType>'
In file included from /usr/include/c++/8/random:51,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:108,
                 from c.cc:1:
/usr/include/c++/8/bits/random.tcc:2203: note: candidate: 'template<class 
   _RealType, class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& 
   std::operator<<(std::basic_ostream<_CharT, _Traits>&, const 
   std::fisher_f_distribution<_RealType>&)'
/usr/include/c++/8/bits/random.tcc:2203: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   'std::vector<int>' is not derived from 'const 
   std::fisher_f_distribution<_RealType>'
In file included from /usr/include/c++/8/random:51,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:108,
                 from c.cc:1:
/usr/include/c++/8/bits/random.tcc:2278: note: candidate: 'template<class 
   _RealType, class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& 
   std::operator<<(std::basic_ostream<_CharT, _Traits>&, const 
   std::student_t_distribution<_RealType>&)'
/usr/include/c++/8/bits/random.tcc:2278: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   'std::vector<int>' is not derived from 'const 
   std::student_t_distribution<_RealType>'
In file included from /usr/include/c++/8/random:51,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:108,
                 from c.cc:1:
/usr/include/c++/8/bits/random.tcc:2447: note: candidate: 'template<class 
   _RealType1, class _CharT, class _Traits> std::basic_ostream<_CharT, 
   _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const 
   std::gamma_distribution<_RealType>&)'
/usr/include/c++/8/bits/random.tcc:2447: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   'std::vector<int>' is not derived from 'const 
   std::gamma_distribution<_RealType>'
In file included from /usr/include/c++/8/random:51,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:108,
                 from c.cc:1:
/usr/include/c++/8/bits/random.tcc:2737: note: candidate: 'template<class 
   _IntType, class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& 
   std::operator<<(std::basic_ostream<_CharT, _Traits>&, const 
   std::discrete_distribution<_IntType>&)'
/usr/include/c++/8/bits/random.tcc:2737: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   'std::vector<int>' is not derived from 'const 
   std::discrete_distribution<_IntType>'
In file included from /usr/include/c++/8/random:51,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:108,
                 from c.cc:1:
/usr/include/c++/8/bits/random.tcc:2947: note: candidate: 'template<class 
   _RealType, class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& 
   std::operator<<(std::basic_ostream<_CharT, _Traits>&, const 
   std::piecewise_constant_distribution<_RealType>&)'
/usr/include/c++/8/bits/random.tcc:2947: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   'std::vector<int>' is not derived from 'const 
   std::piecewise_constant_distribution<_RealType>'
In file included from /usr/include/c++/8/random:51,
                 from /usr/include/c++/8/x86_64-redhat-linux/bits/stdc++.h:108,
                 from c.cc:1:
/usr/include/c++/8/bits/random.tcc:3163: note: candidate: 'template<class 
   _RealType, class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& 
   std::operator<<(std::basic_ostream<_CharT, _Traits>&, const 
   std::piecewise_linear_distribution<_RealType>&)'
/usr/include/c++/8/bits/random.tcc:3163: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   'std::vector<int>' is not derived from 'const 
   std::piecewise_linear_distribution<_RealType>'

Options

On the other hand, -Wfatal-errors makes it all stop:

vector<int> v;
cout << v;
c.cc:2: error: no match for 'operator<<' in 'std::cout << v' (operand types are 
   'std::ostream' {aka 'std::basic_ostream<char>'} and 'std::vector<int>')

#1

This works:

stringstream ss;
ss << 42;
cout << "It is " << ss.str() << '\n';
It is 42

Why does this fail?

stringstream ss;
cout << "It is " << (ss << 42).str() << '\n';
c.cc:2: error: 'class std::basic_ostream<char>' has no member named 'str'

Go nuts and read the error message. The entire message.

#2

vector<int> x;
x.pushback(3);
c.cc:2: error: 'class std::vector<int>' has no member named 'pushback'; did you 
   mean 'push_back'?

Well, that used to be difficult, until g++ started doing spelling correction.

#3

class Foo {
  public:
    int n;
};

ostream &operator>>(ostream &os, const Foo &f) {
    return os << f.n;
}

int main() {
    Foo bar;
    cout << bar;
}
c.cc:12: error: no match for 'operator<<' in 'std::cout << bar' (operand types 
   are 'std::ostream' {aka 'std::basic_ostream<char>'} and 'Foo')

#4

class Foo {
  public:
    int n;
};

ostream &operator<<(ostream os, const Foo &f) {
    return os << f.n;
}

int main() {
    Foo bar;
    cout << bar;
}
c.cc:12: error: use of deleted function 'std::basic_ostream<_CharT, 
   _Traits>::basic_ostream(const std::basic_ostream<_CharT, _Traits>&) [with 
   _CharT = char; _Traits = std::char_traits<char>]'