记录详情

Compile Error

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

信息

递交者
类型
递交
比赛
2024春 面向对象的程序设计方法(第3场作业赛)
语言
C++
递交时间
2024-05-04 21:10:33
评测时间
2024-05-04 21:10:33
评测机
分数
0
总耗时
0ms
峰值内存
0 Bytes