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:
- Note the line number in the error message.
- Look at that line in the source code.
- If that solved the problem, great, we’re done.
- 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
int negative = 1-2;
int positive = 2-1;
int zero = positive-positive
// Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
// eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim
// ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
// aliquip ex ea commodo consequat. Duis aute irure dolor in
// reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
// pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
// culpa qui officia deserunt mollit anim id est laborum.
cout << "Flibbertigibbet!\n";
c.cc:11: error: expected ‘,’ or ‘;’ before ‘cout’
Why did that fail?
The int zero
statement has no semicolon.
“Well, why didn’t the compiler complain about that line!?”
It wasn’t bad yet. The semicolon could have been on the next line.
#4
#include "incomplete.h"
// Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
// eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim
// ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
// aliquip ex ea commodo consequat. Duis aute irure dolor in
// reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
// pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
// culpa qui officia deserunt mollit anim id est laborum.
int main() {
return 0;
}
c.cc:9: error: expected ‘,’ or ‘;’ before ‘int’
Why did that fail?
incomplete.h
contains the incomplete statement:
int x=5
#5
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.
#6
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
- I agree that the previous simplificiation is difficult,
at first, to do in your head.
- Instead, copy-and-paste the error message into an editor,
and use the editor to do the transformations
- Oh, you don’t know how to copy and paste?
- Maybe it’s time to learn.
- Oh, you don’t know how to use an editor?
- Maybe it’s time to learn.
- If I’m interviewing you for a job at my company, and you can’t
even copy & paste, or use an editor, then I’ll just move on to the
next, competent, candidate.
- “But I never had a class in editors!”
- Nobody ever does. Get over it and teach yourself.