CS253: Software Development with C++

Spring 2022

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 entire error message. Like, actually, totally, literally all of it.

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/local/gcc/11.2.0/include/c++/11.2.0/iostream:39,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:6,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/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/local/gcc/11.2.0/include/c++/11.2.0/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/local/gcc/11.2.0/include/c++/11.2.0/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/local/gcc/11.2.0/include/c++/11.2.0/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/local/gcc/11.2.0/include/c++/11.2.0/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/local/gcc/11.2.0/include/c++/11.2.0/ostream:127: note:   no known 
   conversion for argument 1 from ‘std::vector<int>’ to ‘std::ios_base& 
   (*)(std::ios_base&)’
/usr/local/gcc/11.2.0/include/c++/11.2.0/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/local/gcc/11.2.0/include/c++/11.2.0/ostream:166: note:   no known 
   conversion for argument 1 from ‘std::vector<int>’ to ‘long int’
/usr/local/gcc/11.2.0/include/c++/11.2.0/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/local/gcc/11.2.0/include/c++/11.2.0/ostream:170: note:   no known 
   conversion for argument 1 from ‘std::vector<int>’ to ‘long unsigned 
   int’
/usr/local/gcc/11.2.0/include/c++/11.2.0/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/local/gcc/11.2.0/include/c++/11.2.0/ostream:174: note:   no known 
   conversion for argument 1 from ‘std::vector<int>’ to ‘bool’
In file included from /usr/local/gcc/11.2.0/include/c++/11.2.0/ostream:826,
                 from /usr/local/gcc/11.2.0/include/c++/11.2.0/iostream:39,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:6,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/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/local/gcc/11.2.0/include/c++/11.2.0/bits/ostream.tcc:92: note:   no known 
   conversion for argument 1 from ‘std::vector<int>’ to ‘short int’
In file included from /usr/local/gcc/11.2.0/include/c++/11.2.0/iostream:39,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:6,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/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/local/gcc/11.2.0/include/c++/11.2.0/ostream:181: note:   no known 
   conversion for argument 1 from ‘std::vector<int>’ to ‘short unsigned 
   int’
In file included from /usr/local/gcc/11.2.0/include/c++/11.2.0/ostream:826,
                 from /usr/local/gcc/11.2.0/include/c++/11.2.0/iostream:39,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:6,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/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/local/gcc/11.2.0/include/c++/11.2.0/bits/ostream.tcc:106: note:   no known 
   conversion for argument 1 from ‘std::vector<int>’ to ‘int’
In file included from /usr/local/gcc/11.2.0/include/c++/11.2.0/iostream:39,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:6,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/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/local/gcc/11.2.0/include/c++/11.2.0/ostream:192: note:   no known 
   conversion for argument 1 from ‘std::vector<int>’ to ‘unsigned int’
/usr/local/gcc/11.2.0/include/c++/11.2.0/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/local/gcc/11.2.0/include/c++/11.2.0/ostream:201: note:   no known 
   conversion for argument 1 from ‘std::vector<int>’ to ‘long long int’
/usr/local/gcc/11.2.0/include/c++/11.2.0/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/local/gcc/11.2.0/include/c++/11.2.0/ostream:205: note:   no known 
   conversion for argument 1 from ‘std::vector<int>’ to ‘long long 
   unsigned int’
/usr/local/gcc/11.2.0/include/c++/11.2.0/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/local/gcc/11.2.0/include/c++/11.2.0/ostream:220: note:   no known 
   conversion for argument 1 from ‘std::vector<int>’ to ‘double’
/usr/local/gcc/11.2.0/include/c++/11.2.0/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/local/gcc/11.2.0/include/c++/11.2.0/ostream:224: note:   no known 
   conversion for argument 1 from ‘std::vector<int>’ to ‘float’
/usr/local/gcc/11.2.0/include/c++/11.2.0/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/local/gcc/11.2.0/include/c++/11.2.0/ostream:232: note:   no known 
   conversion for argument 1 from ‘std::vector<int>’ to ‘long double’
/usr/local/gcc/11.2.0/include/c++/11.2.0/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/local/gcc/11.2.0/include/c++/11.2.0/ostream:245: note:   no known 
   conversion for argument 1 from ‘std::vector<int>’ to ‘const void*’
/usr/local/gcc/11.2.0/include/c++/11.2.0/ostream:250: note: candidate: 
   ‘std::basic_ostream<_CharT, _Traits>::__ostream_type& 
   std::basic_ostream<_CharT, _Traits>::operator<<(std::nullptr_t) [with _CharT 
   = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, 
   _Traits>::__ostream_type = std::basic_ostream<char>; std::nullptr_t = 
   std::nullptr_t]’
/usr/local/gcc/11.2.0/include/c++/11.2.0/ostream:250: note:   no known 
   conversion for argument 1 from ‘std::vector<int>’ to 
   ‘std::nullptr_t’
In file included from /usr/local/gcc/11.2.0/include/c++/11.2.0/ostream:826,
                 from /usr/local/gcc/11.2.0/include/c++/11.2.0/iostream:39,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:6,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/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/local/gcc/11.2.0/include/c++/11.2.0/bits/ostream.tcc:120: 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/local/gcc/11.2.0/include/c++/11.2.0/regex:63,
                 from /usr/local/gcc/11.2.0/include/c++/11.2.0/x86_64-pc-linux-gnu/bits/stdc++.h:110,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:7,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/bits/regex.h:1649: 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/local/gcc/11.2.0/include/c++/11.2.0/bits/regex.h:1649: 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/local/gcc/11.2.0/include/c++/11.2.0/bits/basic_string.h:48,
                 from /usr/local/gcc/11.2.0/include/c++/11.2.0/string:55,
                 from /usr/local/gcc/11.2.0/include/c++/11.2.0/bits/locale_classes.h:40,
                 from /usr/local/gcc/11.2.0/include/c++/11.2.0/bits/ios_base.h:41,
                 from /usr/local/gcc/11.2.0/include/c++/11.2.0/ios:42,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:5,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/string_view:666: 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/local/gcc/11.2.0/include/c++/11.2.0/string_view:666: 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/local/gcc/11.2.0/include/c++/11.2.0/string:55,
                 from /usr/local/gcc/11.2.0/include/c++/11.2.0/bits/locale_classes.h:40,
                 from /usr/local/gcc/11.2.0/include/c++/11.2.0/bits/ios_base.h:41,
                 from /usr/local/gcc/11.2.0/include/c++/11.2.0/ios:42,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:5,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/bits/basic_string.h:6530: 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/local/gcc/11.2.0/include/c++/11.2.0/bits/basic_string.h:6530: 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/local/gcc/11.2.0/include/c++/11.2.0/bits/ios_base.h:46,
                 from /usr/local/gcc/11.2.0/include/c++/11.2.0/ios:42,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:5,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/system_error:263: note: candidate: 
   ‘template<class _CharT, class _Traits> std::basic_ostream<_CharT, 
   _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const 
   std::error_code&)’
/usr/local/gcc/11.2.0/include/c++/11.2.0/system_error:263: 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/local/gcc/11.2.0/include/c++/11.2.0/iostream:39,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:6,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/ostream:506: note: candidate: 
   ‘template<class _CharT, class _Traits> std::basic_ostream<_CharT, 
   _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, _CharT)’
/usr/local/gcc/11.2.0/include/c++/11.2.0/ostream:506: 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/local/gcc/11.2.0/include/c++/11.2.0/iostream:39,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:6,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/ostream:511: note: candidate: 
   ‘template<class _CharT, class _Traits> std::basic_ostream<_CharT, 
   _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, char)’
/usr/local/gcc/11.2.0/include/c++/11.2.0/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/local/gcc/11.2.0/include/c++/11.2.0/iostream:39,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:6,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/ostream:517: note: candidate: 
   ‘template<class _Traits> std::basic_ostream<char, _Traits>& 
   std::operator<<(std::basic_ostream<char, _Traits>&, char)’
/usr/local/gcc/11.2.0/include/c++/11.2.0/ostream:517: 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/local/gcc/11.2.0/include/c++/11.2.0/iostream:39,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:6,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/ostream:523: note: candidate: 
   ‘template<class _Traits> std::basic_ostream<char, _Traits>& 
   std::operator<<(std::basic_ostream<char, _Traits>&, signed char)’
/usr/local/gcc/11.2.0/include/c++/11.2.0/ostream:523: 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/local/gcc/11.2.0/include/c++/11.2.0/iostream:39,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:6,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/ostream:528: note: candidate: 
   ‘template<class _Traits> std::basic_ostream<char, _Traits>& 
   std::operator<<(std::basic_ostream<char, _Traits>&, unsigned char)’
/usr/local/gcc/11.2.0/include/c++/11.2.0/ostream:528: 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/local/gcc/11.2.0/include/c++/11.2.0/iostream:39,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:6,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/ostream:589: note: candidate: 
   ‘template<class _CharT, class _Traits> std::basic_ostream<_CharT, 
   _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const 
   _CharT*)’
/usr/local/gcc/11.2.0/include/c++/11.2.0/ostream:589: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   mismatched types ‘const _CharT*’ and ‘std::vector<int>’
In file included from /usr/local/gcc/11.2.0/include/c++/11.2.0/ostream:826,
                 from /usr/local/gcc/11.2.0/include/c++/11.2.0/iostream:39,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:6,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/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/local/gcc/11.2.0/include/c++/11.2.0/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/local/gcc/11.2.0/include/c++/11.2.0/iostream:39,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:6,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/ostream:606: note: candidate: 
   ‘template<class _Traits> std::basic_ostream<char, _Traits>& 
   std::operator<<(std::basic_ostream<char, _Traits>&, const char*)’
/usr/local/gcc/11.2.0/include/c++/11.2.0/ostream:606: 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/local/gcc/11.2.0/include/c++/11.2.0/iostream:39,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:6,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/ostream:619: note: candidate: 
   ‘template<class _Traits> std::basic_ostream<char, _Traits>& 
   std::operator<<(std::basic_ostream<char, _Traits>&, const signed char*)’
/usr/local/gcc/11.2.0/include/c++/11.2.0/ostream:619: 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/local/gcc/11.2.0/include/c++/11.2.0/iostream:39,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:6,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/ostream:624: note: candidate: 
   ‘template<class _Traits> std::basic_ostream<char, _Traits>& 
   std::operator<<(std::basic_ostream<char, _Traits>&, const unsigned char*)’
/usr/local/gcc/11.2.0/include/c++/11.2.0/ostream:624: 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/local/gcc/11.2.0/include/c++/11.2.0/iostream:39,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:6,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/ostream:747: note: candidate: 
   ‘template<class _Ostream, class _Tp> _Ostream&& 
   std::operator<<(_Ostream&&, const _Tp&)’
/usr/local/gcc/11.2.0/include/c++/11.2.0/ostream:747: note:   template argument 
   deduction/substitution failed:
/usr/local/gcc/11.2.0/include/c++/11.2.0/ostream: In substitution of ‘template<class _Ostream, class _Tp> _Ostream&& std::operator<<(_Ostream&&, const _Tp&) [with _Ostream = std::basic_ostream<char>&; _Tp = std::vector<int>]’:
c.cc:2:   required from here
/usr/local/gcc/11.2.0/include/c++/11.2.0/ostream:747: error: no type named 
   ‘type’ in ‘struct std::enable_if<false, void>’
In file included from /usr/local/gcc/11.2.0/include/c++/11.2.0/x86_64-pc-linux-gnu/bits/stdc++.h:45,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:7,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/cstddef:125: note: candidate: 
   ‘template<class _IntegerType> constexpr std::__byte_op_t<_IntegerType> 
   std::operator<<(std::byte, _IntegerType)’
/usr/local/gcc/11.2.0/include/c++/11.2.0/cstddef:125: 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/local/gcc/11.2.0/include/c++/11.2.0/ccomplex:39,
                 from /usr/local/gcc/11.2.0/include/c++/11.2.0/x86_64-pc-linux-gnu/bits/stdc++.h:54,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:7,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/complex:555: 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/local/gcc/11.2.0/include/c++/11.2.0/complex:555: 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/local/gcc/11.2.0/include/c++/11.2.0/x86_64-pc-linux-gnu/bits/stdc++.h:66,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:7,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/bitset:1540: 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/local/gcc/11.2.0/include/c++/11.2.0/bitset:1540: 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/local/gcc/11.2.0/include/c++/11.2.0/x86_64-pc-linux-gnu/bits/stdc++.h:72,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:7,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/iomanip:79: note: candidate: 
   ‘template<class _CharT, class _Traits> std::basic_ostream<_CharT, 
   _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, 
   std::_Resetiosflags)’
/usr/local/gcc/11.2.0/include/c++/11.2.0/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/local/gcc/11.2.0/include/c++/11.2.0/x86_64-pc-linux-gnu/bits/stdc++.h:72,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:7,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/iomanip:109: note: candidate: 
   ‘template<class _CharT, class _Traits> std::basic_ostream<_CharT, 
   _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, 
   std::_Setiosflags)’
/usr/local/gcc/11.2.0/include/c++/11.2.0/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/local/gcc/11.2.0/include/c++/11.2.0/x86_64-pc-linux-gnu/bits/stdc++.h:72,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:7,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/iomanip:143: note: candidate: 
   ‘template<class _CharT, class _Traits> std::basic_ostream<_CharT, 
   _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, 
   std::_Setbase)’
/usr/local/gcc/11.2.0/include/c++/11.2.0/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/local/gcc/11.2.0/include/c++/11.2.0/x86_64-pc-linux-gnu/bits/stdc++.h:72,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:7,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/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/local/gcc/11.2.0/include/c++/11.2.0/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/local/gcc/11.2.0/include/c++/11.2.0/x86_64-pc-linux-gnu/bits/stdc++.h:72,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:7,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/iomanip:208: note: candidate: 
   ‘template<class _CharT, class _Traits> std::basic_ostream<_CharT, 
   _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, 
   std::_Setprecision)’
/usr/local/gcc/11.2.0/include/c++/11.2.0/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/local/gcc/11.2.0/include/c++/11.2.0/x86_64-pc-linux-gnu/bits/stdc++.h:72,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:7,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/iomanip:238: note: candidate: 
   ‘template<class _CharT, class _Traits> std::basic_ostream<_CharT, 
   _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, 
   std::_Setw)’
/usr/local/gcc/11.2.0/include/c++/11.2.0/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/local/gcc/11.2.0/include/c++/11.2.0/x86_64-pc-linux-gnu/bits/stdc++.h:72,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:7,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/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/local/gcc/11.2.0/include/c++/11.2.0/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/local/gcc/11.2.0/include/c++/11.2.0/x86_64-pc-linux-gnu/bits/stdc++.h:72,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:7,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/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/local/gcc/11.2.0/include/c++/11.2.0/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/local/gcc/11.2.0/include/c++/11.2.0/memory:77,
                 from /usr/local/gcc/11.2.0/include/c++/11.2.0/x86_64-pc-linux-gnu/bits/stdc++.h:82,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:7,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/bits/shared_ptr.h:70: 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/local/gcc/11.2.0/include/c++/11.2.0/bits/shared_ptr.h:70: 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/local/gcc/11.2.0/include/c++/11.2.0/valarray:603,
                 from /usr/local/gcc/11.2.0/include/c++/11.2.0/x86_64-pc-linux-gnu/bits/stdc++.h:95,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:7,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/bits/valarray_after.h:413: note: candidate:
   ‘template<class _Dom1, class _Dom2> 
   std::_Expr<std::__detail::_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/local/gcc/11.2.0/include/c++/11.2.0/bits/valarray_after.h:413: 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/local/gcc/11.2.0/include/c++/11.2.0/valarray:603,
                 from /usr/local/gcc/11.2.0/include/c++/11.2.0/x86_64-pc-linux-gnu/bits/stdc++.h:95,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:7,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/bits/valarray_after.h:413: note: candidate:
   ‘template<class _Dom> 
   std::_Expr<std::__detail::_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/local/gcc/11.2.0/include/c++/11.2.0/bits/valarray_after.h:413: 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/local/gcc/11.2.0/include/c++/11.2.0/valarray:603,
                 from /usr/local/gcc/11.2.0/include/c++/11.2.0/x86_64-pc-linux-gnu/bits/stdc++.h:95,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:7,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/bits/valarray_after.h:413: note: candidate:
   ‘template<class _Dom> 
   std::_Expr<std::__detail::_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/local/gcc/11.2.0/include/c++/11.2.0/bits/valarray_after.h:413: 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/local/gcc/11.2.0/include/c++/11.2.0/valarray:603,
                 from /usr/local/gcc/11.2.0/include/c++/11.2.0/x86_64-pc-linux-gnu/bits/stdc++.h:95,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:7,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/bits/valarray_after.h:413: note: candidate:
   ‘template<class _Dom> 
   std::_Expr<std::__detail::_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/local/gcc/11.2.0/include/c++/11.2.0/bits/valarray_after.h:413: 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/local/gcc/11.2.0/include/c++/11.2.0/valarray:603,
                 from /usr/local/gcc/11.2.0/include/c++/11.2.0/x86_64-pc-linux-gnu/bits/stdc++.h:95,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:7,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/bits/valarray_after.h:413: note: candidate:
   ‘template<class _Dom> 
   std::_Expr<std::__detail::_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/local/gcc/11.2.0/include/c++/11.2.0/bits/valarray_after.h:413: 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/local/gcc/11.2.0/include/c++/11.2.0/x86_64-pc-linux-gnu/bits/stdc++.h:95,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:7,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/valarray:1193: note: candidate: 
   ‘template<class _Tp> std::_Expr<std::__detail::_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/local/gcc/11.2.0/include/c++/11.2.0/valarray:1193: 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/local/gcc/11.2.0/include/c++/11.2.0/x86_64-pc-linux-gnu/bits/stdc++.h:95,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:7,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/valarray:1193: note: candidate: 
   ‘template<class _Tp> std::_Expr<std::__detail::_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 typename std::valarray<_Tp>::value_type&)’
/usr/local/gcc/11.2.0/include/c++/11.2.0/valarray:1193: 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/local/gcc/11.2.0/include/c++/11.2.0/x86_64-pc-linux-gnu/bits/stdc++.h:95,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:7,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/valarray:1193: note: candidate: 
   ‘template<class _Tp> std::_Expr<std::__detail::_BinClos<std::__shift_left, 
   std::_Constant, std::_ValArray, _Tp, _Tp>, typename 
   std::__fun<std::__shift_left, _Tp>::result_type> std::operator<<(const 
   typename std::valarray<_Tp>::value_type&, const std::valarray<_Tp>&)’
/usr/local/gcc/11.2.0/include/c++/11.2.0/valarray:1193: 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/local/gcc/11.2.0/include/c++/11.2.0/random:49,
                 from /usr/local/gcc/11.2.0/include/c++/11.2.0/x86_64-pc-linux-gnu/bits/stdc++.h:108,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:7,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/bits/random.h:1309: 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/local/gcc/11.2.0/include/c++/11.2.0/bits/random.h:1309: 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/local/gcc/11.2.0/include/c++/11.2.0/random:51,
                 from /usr/local/gcc/11.2.0/include/c++/11.2.0/x86_64-pc-linux-gnu/bits/stdc++.h:108,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:7,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/bits/random.tcc:901: 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/local/gcc/11.2.0/include/c++/11.2.0/bits/random.tcc:901: 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/local/gcc/11.2.0/include/c++/11.2.0/random:51,
                 from /usr/local/gcc/11.2.0/include/c++/11.2.0/x86_64-pc-linux-gnu/bits/stdc++.h:108,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:7,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/bits/random.tcc:959: 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/local/gcc/11.2.0/include/c++/11.2.0/bits/random.tcc:959: 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/local/gcc/11.2.0/include/c++/11.2.0/random:51,
                 from /usr/local/gcc/11.2.0/include/c++/11.2.0/x86_64-pc-linux-gnu/bits/stdc++.h:108,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:7,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/bits/random.tcc:2144: 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/local/gcc/11.2.0/include/c++/11.2.0/bits/random.tcc:2144: 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/local/gcc/11.2.0/include/c++/11.2.0/random:51,
                 from /usr/local/gcc/11.2.0/include/c++/11.2.0/x86_64-pc-linux-gnu/bits/stdc++.h:108,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:7,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/bits/random.tcc:1020: note: candidate: 
   ‘template<class _CharT, class _Traits> std::basic_ostream<_CharT, 
   _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const 
   std::bernoulli_distribution&)’
/usr/local/gcc/11.2.0/include/c++/11.2.0/bits/random.tcc:1020: 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/local/gcc/11.2.0/include/c++/11.2.0/random:51,
                 from /usr/local/gcc/11.2.0/include/c++/11.2.0/x86_64-pc-linux-gnu/bits/stdc++.h:108,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:7,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/bits/random.tcc:1101: 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/local/gcc/11.2.0/include/c++/11.2.0/bits/random.tcc:1101: 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/local/gcc/11.2.0/include/c++/11.2.0/random:51,
                 from /usr/local/gcc/11.2.0/include/c++/11.2.0/x86_64-pc-linux-gnu/bits/stdc++.h:108,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:7,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/bits/random.tcc:1753: 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/local/gcc/11.2.0/include/c++/11.2.0/bits/random.tcc:1753: 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/local/gcc/11.2.0/include/c++/11.2.0/random:51,
                 from /usr/local/gcc/11.2.0/include/c++/11.2.0/x86_64-pc-linux-gnu/bits/stdc++.h:108,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:7,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/bits/random.tcc:2538: 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/local/gcc/11.2.0/include/c++/11.2.0/bits/random.tcc:2538: 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/local/gcc/11.2.0/include/c++/11.2.0/random:51,
                 from /usr/local/gcc/11.2.0/include/c++/11.2.0/x86_64-pc-linux-gnu/bits/stdc++.h:108,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:7,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/bits/random.tcc:2612: 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/local/gcc/11.2.0/include/c++/11.2.0/bits/random.tcc:2612: 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/local/gcc/11.2.0/include/c++/11.2.0/random:51,
                 from /usr/local/gcc/11.2.0/include/c++/11.2.0/x86_64-pc-linux-gnu/bits/stdc++.h:108,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:7,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/bits/random.tcc:154: 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/local/gcc/11.2.0/include/c++/11.2.0/bits/random.tcc:154: 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/local/gcc/11.2.0/include/c++/11.2.0/random:51,
                 from /usr/local/gcc/11.2.0/include/c++/11.2.0/x86_64-pc-linux-gnu/bits/stdc++.h:108,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:7,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/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/local/gcc/11.2.0/include/c++/11.2.0/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/local/gcc/11.2.0/include/c++/11.2.0/random:51,
                 from /usr/local/gcc/11.2.0/include/c++/11.2.0/x86_64-pc-linux-gnu/bits/stdc++.h:108,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:7,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/bits/random.tcc:628: 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/local/gcc/11.2.0/include/c++/11.2.0/bits/random.tcc:628: 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/local/gcc/11.2.0/include/c++/11.2.0/random:51,
                 from /usr/local/gcc/11.2.0/include/c++/11.2.0/x86_64-pc-linux-gnu/bits/stdc++.h:108,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:7,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/bits/random.tcc:696: 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/local/gcc/11.2.0/include/c++/11.2.0/bits/random.tcc:696: 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/local/gcc/11.2.0/include/c++/11.2.0/random:51,
                 from /usr/local/gcc/11.2.0/include/c++/11.2.0/x86_64-pc-linux-gnu/bits/stdc++.h:108,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:7,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/bits/random.tcc:857: 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/local/gcc/11.2.0/include/c++/11.2.0/bits/random.tcc:857: 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/local/gcc/11.2.0/include/c++/11.2.0/random:51,
                 from /usr/local/gcc/11.2.0/include/c++/11.2.0/x86_64-pc-linux-gnu/bits/stdc++.h:108,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:7,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/bits/random.tcc:1215: 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/local/gcc/11.2.0/include/c++/11.2.0/bits/random.tcc:1215: 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/local/gcc/11.2.0/include/c++/11.2.0/random:51,
                 from /usr/local/gcc/11.2.0/include/c++/11.2.0/x86_64-pc-linux-gnu/bits/stdc++.h:108,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:7,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/bits/random.tcc:1425: 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/local/gcc/11.2.0/include/c++/11.2.0/bits/random.tcc:1425: 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/local/gcc/11.2.0/include/c++/11.2.0/random:51,
                 from /usr/local/gcc/11.2.0/include/c++/11.2.0/x86_64-pc-linux-gnu/bits/stdc++.h:108,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:7,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/bits/random.tcc:1691: 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/local/gcc/11.2.0/include/c++/11.2.0/bits/random.tcc:1691: 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/local/gcc/11.2.0/include/c++/11.2.0/random:51,
                 from /usr/local/gcc/11.2.0/include/c++/11.2.0/x86_64-pc-linux-gnu/bits/stdc++.h:108,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:7,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/bits/random.tcc:1919: 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/local/gcc/11.2.0/include/c++/11.2.0/bits/random.tcc:1919: 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/local/gcc/11.2.0/include/c++/11.2.0/random:51,
                 from /usr/local/gcc/11.2.0/include/c++/11.2.0/x86_64-pc-linux-gnu/bits/stdc++.h:108,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:7,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/bits/random.tcc:1986: 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/local/gcc/11.2.0/include/c++/11.2.0/bits/random.tcc:1986: 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/local/gcc/11.2.0/include/c++/11.2.0/random:51,
                 from /usr/local/gcc/11.2.0/include/c++/11.2.0/x86_64-pc-linux-gnu/bits/stdc++.h:108,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:7,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/bits/random.tcc:2058: 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/local/gcc/11.2.0/include/c++/11.2.0/bits/random.tcc:2058: 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/local/gcc/11.2.0/include/c++/11.2.0/random:51,
                 from /usr/local/gcc/11.2.0/include/c++/11.2.0/x86_64-pc-linux-gnu/bits/stdc++.h:108,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:7,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/bits/random.tcc:2219: 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/local/gcc/11.2.0/include/c++/11.2.0/bits/random.tcc:2219: 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/local/gcc/11.2.0/include/c++/11.2.0/random:51,
                 from /usr/local/gcc/11.2.0/include/c++/11.2.0/x86_64-pc-linux-gnu/bits/stdc++.h:108,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:7,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/bits/random.tcc:2293: 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/local/gcc/11.2.0/include/c++/11.2.0/bits/random.tcc:2293: 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/local/gcc/11.2.0/include/c++/11.2.0/random:51,
                 from /usr/local/gcc/11.2.0/include/c++/11.2.0/x86_64-pc-linux-gnu/bits/stdc++.h:108,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:7,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/bits/random.tcc:2462: 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/local/gcc/11.2.0/include/c++/11.2.0/bits/random.tcc:2462: 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/local/gcc/11.2.0/include/c++/11.2.0/random:51,
                 from /usr/local/gcc/11.2.0/include/c++/11.2.0/x86_64-pc-linux-gnu/bits/stdc++.h:108,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:7,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/bits/random.tcc:2748: 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/local/gcc/11.2.0/include/c++/11.2.0/bits/random.tcc:2748: 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/local/gcc/11.2.0/include/c++/11.2.0/random:51,
                 from /usr/local/gcc/11.2.0/include/c++/11.2.0/x86_64-pc-linux-gnu/bits/stdc++.h:108,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:7,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/bits/random.tcc:2970: 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/local/gcc/11.2.0/include/c++/11.2.0/bits/random.tcc:2970: 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/local/gcc/11.2.0/include/c++/11.2.0/random:51,
                 from /usr/local/gcc/11.2.0/include/c++/11.2.0/x86_64-pc-linux-gnu/bits/stdc++.h:108,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:7,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/bits/random.tcc:3176: 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/local/gcc/11.2.0/include/c++/11.2.0/bits/random.tcc:3176: note:   template 
   argument deduction/substitution failed:
c.cc:2: note:   ‘std::vector<int>’ is not derived from ‘const 
   std::piecewise_linear_distribution<_RealType>’
In file included from /usr/local/gcc/11.2.0/include/c++/11.2.0/x86_64-pc-linux-gnu/bits/stdc++.h:113,
                 from /s/bach/a/class/cs000/public_html/pmwiki/cookbook/c++-includes.h:7,
                 from <command-line>:
/usr/local/gcc/11.2.0/include/c++/11.2.0/thread:92: note: candidate: 
   ‘template<class _CharT, class _Traits> std::basic_ostream<_CharT, 
   _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, 
   std::thread::id)’
/usr/local/gcc/11.2.0/include/c++/11.2.0/thread:92: note:   template argument 
   deduction/substitution failed:
c.cc:2: note:   cannot convert ‘v’ (type ‘std::vector<int>’) to type 
   ‘std::thread::id’

Options

On the other hand, -Wfatal-errors makes it all stop. This is odd, because the purpose of -Wfatal-errors is to make the compiler stop after the first error. Computers are mysterious.

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();
It is 42

Why does this fail?

stringstream ss;
cout << "It is " << (ss << 42).str();  // 🦡
c.cc:2: error: ‘class std::basic_ostream<char>’ has no member named 
   ‘str’

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

Why did it fail?

operator<< yields an ostream, not an ostringstream.

#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’)
Why did it fail?

We defined operator>> instead of operator<<. It makes no sense to define operator>> for an ostream, but we can’t expect g++ to know that.

#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>]’

Let’s tackle that message in the the next slide.

Simplifying

This error message is just too long to comprehend:

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>]'

First, remove std:::

c.cc:12: error: use of deleted function 'basic_ostream<_CharT, _Traits>::basic_ostream(const basic_ostream<_CharT, _Traits>&) [with _CharT = char; _Traits = char_traits<char>]'

More Simplifying

Still too long to comprehend:

c.cc:12: error: use of deleted function 'basic_ostream<_CharT, _Traits>::basic_ostream(const basic_ostream<_CharT, _Traits>&) [with _CharT = char; _Traits = char_traits<char>]'

Replace basic_whatever<> with whatever

c.cc:12: error: use of deleted function 'ostream::ostream(const ostream&) [with _CharT = char; _Traits = char_traits<char>]'

More Simplifying

Still too long to comprehend:

c.cc:12: error: use of deleted function 'ostream::ostream(const ostream&) [with _CharT = char; _Traits = char_traits<char>]'

Let’s format that a bit:

c.cc:12: error: use of deleted function '
ostream::ostream(const ostream&)
[with _CharT = char; _Traits = char_traits<char>]'

More Simplifying

Do we understand this?

c.cc:12: error: use of deleted function '
ostream::ostream(const ostream&)
[with _CharT = char; _Traits = char_traits<char>]'

That’s a copy constructor! It’s trying to copy an ostream, but you can’t do that!

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

The ostream os argument should be ostream &os, to pass by reference, not value.

How to accomplish that