foo.cc: In function ‘std::istream& operator>>(std::istream&, const student&)’:
foo.cc:13:20: error: no match for ‘operator>>’ (operand types are ‘std::istream’ {aka ‘std::basic_istream<char>’} and ‘const std::string’ {aka ‘const std::__cxx11::basic_string<char>’})
13 | in >> s.name>>s.score;
| ~~ ^~ ~~~~~~
| | |
| | const std::string {aka const std::__cxx11::basic_string<char>}
| std::istream {aka std::basic_istream<char>}
In file included from iostream:42:
/nix/gcc-13.2.0/include/c++/13.2.0/istream:325:7: note: candidate: ‘std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(void*&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]’
325 | operator>>(void*& __p)
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/istream:325:25: note: no known conversion for argument 1 from ‘const std::string’ {aka ‘const std::__cxx11::basic_string<char>’} to ‘void*&’
325 | operator>>(void*& __p)
| ~~~~~~~^~~
/nix/gcc-13.2.0/include/c++/13.2.0/istream:224:7: note: candidate: ‘std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long double&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]’
224 | operator>>(long double& __f)
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/istream:224:31: note: no known conversion for argument 1 from ‘const std::string’ {aka ‘const std::__cxx11::basic_string<char>’} to ‘long double&’
224 | operator>>(long double& __f)
| ~~~~~~~~~~~~~^~~
/nix/gcc-13.2.0/include/c++/13.2.0/istream:220:7: note: candidate: ‘std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(double&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]’
220 | operator>>(double& __f)
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/istream:220:26: note: no known conversion for argument 1 from ‘const std::string’ {aka ‘const std::__cxx11::basic_string<char>’} to ‘double&’
220 | operator>>(double& __f)
| ~~~~~~~~^~~
/nix/gcc-13.2.0/include/c++/13.2.0/istream:216:7: note: candidate: ‘std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(float&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]’
216 | operator>>(float& __f)
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/istream:216:25: note: no known conversion for argument 1 from ‘const std::string’ {aka ‘const std::__cxx11::basic_string<char>’} to ‘float&’
216 | operator>>(float& __f)
| ~~~~~~~^~~
/nix/gcc-13.2.0/include/c++/13.2.0/istream:201:7: note: candidate: ‘std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long long unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]’
201 | operator>>(unsigned long long& __n)
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/istream:201:38: note: no known conversion for argument 1 from ‘const std::string’ {aka ‘const std::__cxx11::basic_string<char>’} to ‘long long unsigned int&’
201 | operator>>(unsigned long long& __n)
| ~~~~~~~~~~~~~~~~~~~~^~~
/nix/gcc-13.2.0/include/c++/13.2.0/istream:197:7: note: candidate: ‘std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long long int&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]’
197 | operator>>(long long& __n)
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/istream:197:29: note: no known conversion for argument 1 from ‘const std::string’ {aka ‘const std::__cxx11::basic_string<char>’} to ‘long long int&’
197 | operator>>(long long& __n)
| ~~~~~~~~~~~^~~
/nix/gcc-13.2.0/include/c++/13.2.0/istream:192:7: note: candidate: ‘std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]’
192 | operator>>(unsigned long& __n)
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/istream:192:33: note: no known conversion for argument 1 from ‘const std::string’ {aka ‘const std::__cxx11::basic_string<char>’} to ‘long unsigned int&’
192 | operator>>(unsigned long& __n)
| ~~~~~~~~~~~~~~~^~~
/nix/gcc-13.2.0/include/c++/13.2.0/istream:188:7: note: candidate: ‘std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long int&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]’
188 | operator>>(long& __n)
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/istream:188:24: note: no known conversion for argument 1 from ‘const std::string’ {aka ‘const std::__cxx11::basic_string<char>’} to ‘long int&’
188 | operator>>(long& __n)
| ~~~~~~^~~
/nix/gcc-13.2.0/include/c++/13.2.0/istream:184:7: note: candidate: ‘std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]’
184 | operator>>(unsigned int& __n)
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/istream:184:32: note: no known conversion for argument 1 from ‘const std::string’ {aka ‘const std::__cxx11::basic_string<char>’} to ‘unsigned int&’
184 | operator>>(unsigned int& __n)
| ~~~~~~~~~~~~~~^~~
/nix/gcc-13.2.0/include/c++/13.2.0/istream:181:7: note: candidate: ‘std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(int&) [with _CharT = char; _Traits = std::char_traits<char>]’
181 | operator>>(int& __n);
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/istream:181:23: note: no known conversion for argument 1 from ‘const std::string’ {aka ‘const std::__cxx11::basic_string<char>’} to ‘int&’
181 | operator>>(int& __n);
| ~~~~~^~~
/nix/gcc-13.2.0/include/c++/13.2.0/istream:177:7: note: candidate: ‘std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(short unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]’
177 | operator>>(unsigned short& __n)
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/istream:177:34: note: no known conversion for argument 1 from ‘const std::string’ {aka ‘const std::__cxx11::basic_string<char>’} to ‘short unsigned int&’
177 | operator>>(unsigned short& __n)
| ~~~~~~~~~~~~~~~~^~~
/nix/gcc-13.2.0/include/c++/13.2.0/istream:174:7: note: candidate: ‘std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(short int&) [with _CharT = char; _Traits = std::char_traits<char>]’
174 | operator>>(short& __n);
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/istream:174:25: note: no known conversion for argument 1 from ‘const std::string’ {aka ‘const std::__cxx11::basic_string<char>’} to ‘short int&’
174 | operator>>(short& __n);
| ~~~~~~~^~~
/nix/gcc-13.2.0/include/c++/13.2.0/istream:170:7: note: candidate: ‘std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(bool&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]’
170 | operator>>(bool& __n)
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/istream:170:24: note: no known conversion for argument 1 from ‘const std::string’ {aka ‘const std::__cxx11::basic_string<char>’} to ‘bool&’
170 | operator>>(bool& __n)
| ~~~~~~^~~
/nix/gcc-13.2.0/include/c++/13.2.0/istream:122:7: note: candidate: ‘std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(__istream_type& (*)(__istream_type&)) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]’
122 | operator>>(__istream_type& (*__pf)(__istream_type&))
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/istream:122:36: note: no known conversion for argument 1 from ‘const std::string’ {aka ‘const std::__cxx11::basic_string<char>’} to ‘std::basic_istream<char>::__istream_type& (*)(std::basic_istream<char>::__istream_type&)’ {aka ‘std::basic_istream<char>& (*)(std::basic_istream<char>&)’}
122 | operator>>(__istream_type& (*__pf)(__istream_type&))
| ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/istream:126:7: note: candidate: ‘std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(__ios_type& (*)(__ios_type&)) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>; __ios_type = std::basic_ios<char>]’
126 | operator>>(__ios_type& (*__pf)(__ios_type&))
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/istream:126:32: note: no known conversion for argument 1 from ‘const std::string’ {aka ‘const std::__cxx11::basic_string<char>’} to ‘std::basic_istream<char>::__ios_type& (*)(std::basic_istream<char>::__ios_type&)’ {aka ‘std::basic_ios<char>& (*)(std::basic_ios<char>&)’}
126 | operator>>(__ios_type& (*__pf)(__ios_type&))
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/istream:133:7: note: candidate: ‘std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(std::ios_base& (*)(std::ios_base&)) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]’
133 | operator>>(ios_base& (*__pf)(ios_base&))
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/istream:133:30: note: no known conversion for argument 1 from ‘const std::string’ {aka ‘const std::__cxx11::basic_string<char>’} to ‘std::ios_base& (*)(std::ios_base&)’
133 | operator>>(ios_base& (*__pf)(ios_base&))
| ~~~~~~~~~~~~^~~~~~~~~~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/istream:349:7: note: candidate: ‘std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(__streambuf_type*) [with _CharT = char; _Traits = std::char_traits<char>; __streambuf_type = std::basic_streambuf<char>]’
349 | operator>>(__streambuf_type* __sb);
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/istream:349:36: note: no known conversion for argument 1 from ‘const std::string’ {aka ‘const std::__cxx11::basic_string<char>’} to ‘std::basic_istream<char>::__streambuf_type*’ {aka ‘std::basic_streambuf<char>*’}
349 | operator>>(__streambuf_type* __sb);
| ~~~~~~~~~~~~~~~~~~^~~~
In file included from /nix/gcc-13.2.0/include/c++/13.2.0/string:55,
from /nix/gcc-13.2.0/include/c++/13.2.0/bits/locale_classes.h:40,
from /nix/gcc-13.2.0/include/c++/13.2.0/bits/ios_base.h:41,
from /nix/gcc-13.2.0/include/c++/13.2.0/ios:44,
from /nix/gcc-13.2.0/include/c++/13.2.0/ostream:40,
from iostream:41:
/nix/gcc-13.2.0/include/c++/13.2.0/bits/basic_string.tcc:821:5: note: candidate: ‘template<class _CharT, class _Traits, class _Alloc> std::basic_istream<_CharT, _Traits>& std::operator>>(basic_istream<_CharT, _Traits>&, __cxx11::basic_string<_CharT, _Traits, _Alloc>&)’
821 | operator>>(basic_istream<_CharT, _Traits>& __in,
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/bits/basic_string.tcc:821:5: note: template argument deduction/substitution failed:
foo.cc:13:25: note: types ‘std::__cxx11::basic_string<_CharT, _Traits, _Alloc>’ and ‘const std::string’ {aka ‘const std::__cxx11::basic_string<char>’} have incompatible cv-qualifiers
13 | in >> s.name>>s.score;
| ^~~~
In file included from /nix/gcc-13.2.0/include/c++/13.2.0/istream:1106:
/nix/gcc-13.2.0/include/c++/13.2.0/bits/istream.tcc:975:5: note: candidate: ‘template<class _CharT, class _Traits> std::basic_istream<_CharT, _Traits>& std::operator>>(basic_istream<_CharT, _Traits>&, _CharT&)’
975 | operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c)
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/bits/istream.tcc:975:5: note: template argument deduction/substitution failed:
foo.cc:13:25: note: deduced conflicting types for parameter ‘_CharT’ (‘char’ and ‘const std::string’ {aka ‘const std::__cxx11::basic_string<char>’})
13 | in >> s.name>>s.score;
| ^~~~
/nix/gcc-13.2.0/include/c++/13.2.0/istream:846:5: note: candidate: ‘template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(basic_istream<char, _Traits>&, unsigned char&)’
846 | operator>>(basic_istream<char, _Traits>& __in, unsigned char& __c)
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/istream:846:5: note: template argument deduction/substitution failed:
foo.cc:13:25: note: cannot convert ‘s.student::name’ (type ‘const std::string’ {aka ‘const std::__cxx11::basic_string<char>’}) to type ‘unsigned char&’
13 | in >> s.name>>s.score;
| ~~^~~~
/nix/gcc-13.2.0/include/c++/13.2.0/istream:851:5: note: candidate: ‘template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(basic_istream<char, _Traits>&, signed char&)’
851 | operator>>(basic_istream<char, _Traits>& __in, signed char& __c)
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/istream:851:5: note: template argument deduction/substitution failed:
foo.cc:13:25: note: cannot convert ‘s.student::name’ (type ‘const std::string’ {aka ‘const std::__cxx11::basic_string<char>’}) to type ‘signed char&’
13 | in >> s.name>>s.score;
| ~~^~~~
/nix/gcc-13.2.0/include/c++/13.2.0/istream:893:5: note: candidate: ‘template<class _CharT, class _Traits> std::basic_istream<_CharT, _Traits>& std::operator>>(basic_istream<_CharT, _Traits>&, _CharT*)’
893 | operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s)
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/istream:893:5: note: template argument deduction/substitution failed:
foo.cc:13:25: note: mismatched types ‘_CharT*’ and ‘std::__cxx11::basic_string<char>’
13 | in >> s.name>>s.score;
| ^~~~
/nix/gcc-13.2.0/include/c++/13.2.0/istream:936:5: note: candidate: ‘template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(basic_istream<char, _Traits>&, unsigned char*)’
936 | operator>>(basic_istream<char, _Traits>& __in, unsigned char* __s)
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/istream:936:5: note: template argument deduction/substitution failed:
foo.cc:13:25: note: cannot convert ‘s.student::name’ (type ‘const std::string’ {aka ‘const std::__cxx11::basic_string<char>’}) to type ‘unsigned char*’
13 | in >> s.name>>s.score;
| ~~^~~~
/nix/gcc-13.2.0/include/c++/13.2.0/istream:942:5: note: candidate: ‘template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(basic_istream<char, _Traits>&, signed char*)’
942 | operator>>(basic_istream<char, _Traits>& __in, signed char* __s)
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/istream:942:5: note: template argument deduction/substitution failed:
foo.cc:13:25: note: cannot convert ‘s.student::name’ (type ‘const std::string’ {aka ‘const std::__cxx11::basic_string<char>’}) to type ‘signed char*’
13 | in >> s.name>>s.score;
| ~~^~~~
/nix/gcc-13.2.0/include/c++/13.2.0/istream:1096:5: note: candidate: ‘template<class _Istream, class _Tp> _Istream&& std::operator>>(_Istream&&, _Tp&&)’
1096 | operator>>(_Istream&& __is, _Tp&& __x)
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/istream:1096:5: note: template argument deduction/substitution failed:
/nix/gcc-13.2.0/include/c++/13.2.0/istream: In substitution of ‘template<class _Istream, class _Tp> _Istream&& std::operator>>(_Istream&&, _Tp&&) [with _Istream = std::basic_istream<char>&; _Tp = const std::__cxx11::basic_string<char>&]’:
foo.cc:13:11: required from here
/nix/gcc-13.2.0/include/c++/13.2.0/istream:1096:5: error: no type named ‘type’ in ‘struct std::enable_if<false, void>’