C++ 我在重载操作符时遇到了一个问题&燃气轮机&燃气轮机&引用;我不知道';我不知道发生了什么事

C++ 我在重载操作符时遇到了一个问题&燃气轮机&燃气轮机&引用;我不知道';我不知道发生了什么事,c++,operator-overloading,C++,Operator Overloading,我读过其他针对类似问题的回复,但没有任何效果。这些回答建议包括#包括,但这不起作用。此外,我还尝试在User类中创建重载friend函数,但没有成功 这是用户类: 类用户 { 布尔状态; std::string first_name; std::字符串last_name; 公众: 静态int用户计数; 用户() { 状态=0; first_name=“first”; last_name=“last”; 用户计数++; } 用户(std::string new_first,std::string

我读过其他针对类似问题的回复,但没有任何效果。这些回答建议包括
#包括
,但这不起作用。此外,我还尝试在
User
类中创建重载
friend
函数,但没有成功

这是
用户
类:

类用户
{
布尔状态;
std::string first_name;
std::字符串last_name;
公众:
静态int用户计数;
用户()
{
状态=0;
first_name=“first”;
last_name=“last”;
用户计数++;
}
用户(std::string new_first,std::string new_last,bool new_status)
{
first\u name=新的\u first;
last\u name=新的\u last;
状态=新状态;
用户计数++;
}
//一些能手和二传手。。。
~User()
{
用户计数--;
}
friend std::ostream&operator(std::istream&,User&);
};
是的,我在类外初始化了
user\u count

这些是重载:

std::ostream&operator user.last_name>>user.status;
返回输入;
}
这是
main()
函数:

intmain()
{
User();
std::cin>>用户;
std::cout'(操作数类型为'std::istream'{aka'std::basic_istream'}和'User('))
75 |标准::cin>>用户;
|     ~~~~~~~~ ^~ ~~~~
|          |      |
||用户()
|std::istream{aka std::basic_istream}
在/usr/include/c++/9/iostream:40中包含的文件中,
来自main.cpp:1:
/usr/include/c++/9/istream:120:7:注:候选者:'std::basic\u isttream::'u\u isttream类型&std::basic\u isttream::operator>>(std::basic\u isttream::'u isttream类型&(*)(std::basic\u isttream:::'u\u isttream类型&)[带CharT;\u Traits=std::CharT\u Traits=std::char Traits;std::basic\u isttream::'
120 |运算符>>(uu istream_type&(*uu pf)(uu istream_type&))
|       ^~~~~~~~
/usr/include/c++/9/istream:120:7:注意:参数1的转换格式不正确:
main.cpp:75:17:错误:从“User(*)到“std::basic_istream::__istream_type&(*)(std::basic_istream::_istream_type&)的转换无效。{aka'std::basic_istream&(*)(std::basic_istream&')}[-fpermissive]
75 |标准::cin>>用户;
|                 ^~~~
|                 |
|用户(*)()
在/usr/include/c++/9/iostream:40中包含的文件中,
来自main.cpp:1:
/usr/include/c++/9/istream:124:7:注:候选者:'std::基本istream::'基本istream类型&std::基本istream::运算符>>(std::基本istream::'基本ios类型&(*)(std::基本ios类型::'基本ios类型&)[带字符;'字符特征=std::字符特征;std::基本istream
124 |运算符>>(uuiOS_U类型和(*uuU pf)(uiOS_U类型和))
|       ^~~~~~~~
/usr/include/c++/9/istream:124:7:注意:参数1的转换格式不正确:
main.cpp:75:17:错误:从“User(*)到“std::basic_-ios-type&(*)(std::basic_-ios-type::_-ios-type&)的转换无效,{aka'std::basic_-ios&(*)(std::basic_-ios&')}[-fppermission]
75 |标准::cin>>用户;
|                 ^~~~
|                 |
|用户(*)()
在/usr/include/c++/9/iostream:40中包含的文件中,
来自main.cpp:1:
/usr/include/c++/9/istream:131:7:注:候选者:'std::basic\u istream::'uu istream\u type&std::basic\u istream::operator>>(std::ios\u base&(*)(std::ios\u base&)[带CharT=char;\u Traits=std::char\u traitributes;std::basic\u istream::::'uu istream\u type=std::basic\u istream:'
131 |运营商>>(ios|U基地和(*|U pf)(ios|U基地和)
|       ^~~~~~~~
/usr/include/c++/9/istream:131:7:注意:参数1的转换格式不正确:
main.cpp:75:17:错误:从“用户(*)()到“std::ios_base&(*)(std::ios_base&))的转换无效[-fppermissive]
75 |标准::cin>>用户;
|                 ^~~~
|                 |
|用户(*)()
在/usr/include/c++/9/iostream:40中包含的文件中,
来自main.cpp:1:
/usr/include/c++/9/istream:168:7:注:候选者:'std::basic\u istream::'uuuuuuiStream\u type&std::basic\u istream::operator>>(bool&)[with CharT=char;Traits=std::char\u Traits;std::basic\u istream:::'uuuuuuuuiStream\u type=std::basic\u istream]'
168 |运算符>>(布尔和| n)
|       ^~~~~~~~
/usr/include/c++/9/istream:168:7:注意:参数1的转换格式不正确:
main.cpp:75:17:错误:无法将类型为“bool&”的非常量左值引用绑定到类型为“bool”的右值
75 |标准::cin>>用户;
|                 ^~~~
在/usr/include/c++/9/iostream:40中包含的文件中,
来自main.cpp:1:
/usr/include/c++/9/istream:172:7:注:候选者:“std::basic\u istream&std::basic\u istream::operator>>(短int&)[带_CharT=char;_Traits=std::char\u Traits]”
172 |运算符>>(短和| n);
|       ^~~~~~~~
/usr/include/c++/9/istream:172:7:注意:参数1的转换格式不正确:
main.cpp:75:17:错误:从“User(*)()到“short int”[-fppermissive]的转换无效
75 |标准::cin>>用户;
|                 ^~~~
|                 |
|用户(*)()
main.cpp:75:17:错误:无法将右值“(短int)用户”绑定到“短int&”
在/usr/include/c++/9/iostream:40中包含的文件中,
来自main.cpp:1:
/usr/include/c++/9/istream:175:7:注:候选者:'std::basic\u isttream::'u\u isttream\u type&std::basic\u isttream::operator>>(短无符号int&)[带字符;\u Traits=std::char\u Traits;std::basic\u isttream::\u isttream\u type=std::basic\u
main.cpp: In function ‘int main()’:
main.cpp:75:14: error: no match for ‘operator>>’ (operand types are ‘std::istream’ {aka ‘std::basic_istream<char>’} and ‘User(’)
   75 |     std::cin >> user;
      |     ~~~~~~~~ ^~ ~~~~
      |          |      |
      |          |      User()
      |          std::istream {aka std::basic_istream<char>}
In file included from /usr/include/c++/9/iostream:40,
                 from main.cpp:1:
/usr/include/c++/9/istream:120:7: note: candidate: ‘std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>::__istream_type& (*)(std::basic_istream<_CharT, _Traits>::__istream_type&)) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]’ <near match>
  120 |       operator>>(__istream_type& (*__pf)(__istream_type&))
      |       ^~~~~~~~
/usr/include/c++/9/istream:120:7: note:   conversion of argument 1 would be ill-formed:
main.cpp:75:17: error: invalid conversion from ‘User (*)()’ to ‘std::basic_istream<char>::__istream_type& (*)(std::basic_istream<char>::__istream_type&)’ {aka ‘std::basic_istream<char>& (*)(std::basic_istream<char>&)’} [-fpermissive]
   75 |     std::cin >> user;
      |                 ^~~~
      |                 |
      |                 User (*)()
In file included from /usr/include/c++/9/iostream:40,
                 from main.cpp:1:
/usr/include/c++/9/istream:124:7: note: candidate: ‘std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>::__ios_type& (*)(std::basic_istream<_CharT, _Traits>::__ios_type&)) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>; std::basic_istream<_CharT, _Traits>::__ios_type = std::basic_ios<char>]’ <near match>
  124 |       operator>>(__ios_type& (*__pf)(__ios_type&))
      |       ^~~~~~~~
/usr/include/c++/9/istream:124:7: note:   conversion of argument 1 would be ill-formed:
main.cpp:75:17: error: invalid conversion from ‘User (*)()’ to ‘std::basic_istream<char>::__ios_type& (*)(std::basic_istream<char>::__ios_type&)’ {aka ‘std::basic_ios<char>& (*)(std::basic_ios<char>&)’} [-fpermissive]
   75 |     std::cin >> user;
      |                 ^~~~
      |                 |
      |                 User (*)()
In file included from /usr/include/c++/9/iostream:40,
                 from main.cpp:1:
/usr/include/c++/9/istream:131: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>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]’ <near match>
  131 |       operator>>(ios_base& (*__pf)(ios_base&))
      |       ^~~~~~~~
/usr/include/c++/9/istream:131:7: note:   conversion of argument 1 would be ill-formed:
main.cpp:75:17: error: invalid conversion from ‘User (*)()’ to ‘std::ios_base& (*)(std::ios_base&)’ [-fpermissive]
   75 |     std::cin >> user;
      |                 ^~~~
      |                 |
      |                 User (*)()
In file included from /usr/include/c++/9/iostream:40,
                 from main.cpp:1:
/usr/include/c++/9/istream:168: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>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]’ <near match>
  168 |       operator>>(bool& __n)
      |       ^~~~~~~~
/usr/include/c++/9/istream:168:7: note:   conversion of argument 1 would be ill-formed:
main.cpp:75:17: error: cannot bind non-const lvalue reference of type ‘bool&’ to an rvalue of type ‘bool’
   75 |     std::cin >> user;
      |                 ^~~~
In file included from /usr/include/c++/9/iostream:40,
                 from main.cpp:1:
/usr/include/c++/9/istream:172:7: note: candidate: ‘std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(short int&) [with _CharT = char; _Traits = std::char_traits<char>]’ <near match>
  172 |       operator>>(short& __n);
      |       ^~~~~~~~
/usr/include/c++/9/istream:172:7: note:   conversion of argument 1 would be ill-formed:
main.cpp:75:17: error: invalid conversion from ‘User (*)()’ to ‘short int’ [-fpermissive]
   75 |     std::cin >> user;
      |                 ^~~~
      |                 |
      |                 User (*)()
main.cpp:75:17: error: cannot bind rvalue ‘(short int)user’ to ‘short int&’
In file included from /usr/include/c++/9/iostream:40,
                 from main.cpp:1:
/usr/include/c++/9/istream:175: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>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]’ <near match>
  175 |       operator>>(unsigned short& __n)
      |       ^~~~~~~~
/usr/include/c++/9/istream:175:7: note:   conversion of argument 1 would be ill-formed:
main.cpp:75:17: error: invalid conversion from ‘User (*)()’ to ‘short unsigned int’ [-fpermissive]
   75 |     std::cin >> user;
      |                 ^~~~
      |                 |
      |                 User (*)()
main.cpp:75:17: error: cannot bind rvalue ‘(short unsigned int)user’ to ‘short unsigned int&’
In file included from /usr/include/c++/9/iostream:40,
                 from main.cpp:1:
/usr/include/c++/9/istream:179:7: note: candidate: ‘std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(int&) [with _CharT = char; _Traits = std::char_traits<char>]’ <near match>
  179 |       operator>>(int& __n);
      |       ^~~~~~~~
/usr/include/c++/9/istream:179:7: note:   conversion of argument 1 would be ill-formed:
main.cpp:75:17: error: invalid conversion from ‘User (*)()’ to ‘int’ [-fpermissive]
   75 |     std::cin >> user;
      |                 ^~~~
      |                 |
      |                 User (*)()
main.cpp:75:17: error: cannot bind rvalue ‘(int)user’ to ‘int&’
In file included from /usr/include/c++/9/iostream:40,
                 from main.cpp:1:
/usr/include/c++/9/istream:182: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>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]’ <near match>
  182 |       operator>>(unsigned int& __n)
      |       ^~~~~~~~
/usr/include/c++/9/istream:182:7: note:   conversion of argument 1 would be ill-formed:
main.cpp:75:17: error: invalid conversion from ‘User (*)()’ to ‘unsigned int’ [-fpermissive]
   75 |     std::cin >> user;
      |                 ^~~~
      |                 |
      |                 User (*)()
main.cpp:75:17: error: cannot bind rvalue ‘(unsigned int)user’ to ‘unsigned int&’
In file included from /usr/include/c++/9/iostream:40,
                 from main.cpp:1:
/usr/include/c++/9/istream:186: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>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]’ <near match>
  186 |       operator>>(long& __n)
      |       ^~~~~~~~
/usr/include/c++/9/istream:186:7: note:   conversion of argument 1 would be ill-formed:
main.cpp:75:17: error: invalid conversion from ‘User (*)()’ to ‘long int’ [-fpermissive]
   75 |     std::cin >> user;
      |                 ^~~~
      |                 |
      |                 User (*)()
main.cpp:75:17: error: cannot bind rvalue ‘(long int)user’ to ‘long int&’
In file included from /usr/include/c++/9/iostream:40,
                 from main.cpp:1:
/usr/include/c++/9/istream:190: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>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]’ <near match>
  190 |       operator>>(unsigned long& __n)
      |       ^~~~~~~~
/usr/include/c++/9/istream:190:7: note:   conversion of argument 1 would be ill-formed:
main.cpp:75:17: error: invalid conversion from ‘User (*)()’ to ‘long unsigned int’ [-fpermissive]
   75 |     std::cin >> user;
      |                 ^~~~
      |                 |
      |                 User (*)()
main.cpp:75:17: error: cannot bind rvalue ‘(long unsigned int)user’ to ‘long unsigned int&’
In file included from /usr/include/c++/9/iostream:40,
                 from main.cpp:1:
/usr/include/c++/9/istream:195: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>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]’ <near match>
  195 |       operator>>(long long& __n)
      |       ^~~~~~~~
/usr/include/c++/9/istream:195:7: note:   conversion of argument 1 would be ill-formed:
main.cpp:75:17: error: invalid conversion from ‘User (*)()’ to ‘long long int’ [-fpermissive]
   75 |     std::cin >> user;
      |                 ^~~~
      |                 |
      |                 User (*)()
main.cpp:75:17: error: cannot bind rvalue ‘(long long int)user’ to ‘long long int&’
In file included from /usr/include/c++/9/iostream:40,
                 from main.cpp:1:
/usr/include/c++/9/istream:199: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>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]’ <near match>
  199 |       operator>>(unsigned long long& __n)
      |       ^~~~~~~~
/usr/include/c++/9/istream:199:7: note:   conversion of argument 1 would be ill-formed:
main.cpp:75:17: error: invalid conversion from ‘User (*)()’ to ‘long long unsigned int’ [-fpermissive]
   75 |     std::cin >> user;
      |                 ^~~~
      |                 |
      |                 User (*)()
main.cpp:75:17: error: cannot bind rvalue ‘(long long unsigned int)user’ to ‘long long unsigned int&’
In file included from /usr/include/c++/9/iostream:40,
                 from main.cpp:1:
/usr/include/c++/9/istream:235: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>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]’ <near match>
  235 |       operator>>(void*& __p)
      |       ^~~~~~~~
/usr/include/c++/9/istream:235:7: note:   conversion of argument 1 would be ill-formed:
main.cpp:75:17: error: invalid conversion from ‘User (*)()’ to ‘void*’ [-fpermissive]
   75 |     std::cin >> user;
      |                 ^~~~
      |                 |
      |                 User (*)()
main.cpp:75:17: error: cannot bind rvalue ‘(void*)user’ to ‘void*&’
In file included from /usr/include/c++/9/iostream:40,
                 from main.cpp:1:
/usr/include/c++/9/istream:214: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>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]’
  214 |       operator>>(float& __f)
      |       ^~~~~~~~
/usr/include/c++/9/istream:214:25: note:   no known conversion for argument 1 from ‘User()’ to ‘float&’
  214 |       operator>>(float& __f)
      |                  ~~~~~~~^~~
/usr/include/c++/9/istream:218: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>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]’
  218 |       operator>>(double& __f)
      |       ^~~~~~~~
/usr/include/c++/9/istream:218:26: note:   no known conversion for argument 1 from ‘User()’ to ‘double&’
  218 |       operator>>(double& __f)
      |                  ~~~~~~~~^~~
/usr/include/c++/9/istream:222: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>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]’
  222 |       operator>>(long double& __f)
      |       ^~~~~~~~
/usr/include/c++/9/istream:222:31: note:   no known conversion for argument 1 from ‘User()’ to ‘long double&’
  222 |       operator>>(long double& __f)
      |                  ~~~~~~~~~~~~~^~~
/usr/include/c++/9/istream:259:7: note: candidate: ‘std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>::__streambuf_type*) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__streambuf_type = std::basic_streambuf<char>]’
  259 |       operator>>(__streambuf_type* __sb);
      |       ^~~~~~~~
/usr/include/c++/9/istream:259:36: note:   no known conversion for argument 1 from ‘User()’ to ‘std::basic_istream<char>::__streambuf_type*’ {aka ‘std::basic_streambuf<char>*’}
  259 |       operator>>(__streambuf_type* __sb);
      |                  ~~~~~~~~~~~~~~~~~~^~~~
main.cpp:65:15: note: candidate: ‘std::istream& operator>>(std::istream&, User&)’
   65 | std::istream& operator >>(std::istream& input, User& user)
      |               ^~~~~~~~
main.cpp:65:54: note:   no known conversion for argument 2 from ‘User()’ to ‘User&’
   65 | std::istream& operator >>(std::istream& input, User& user)
      |                                                ~~~~~~^~~~
In file included from /usr/include/c++/9/string:56,
                 from /usr/include/c++/9/bits/locale_classes.h:40,
                 from /usr/include/c++/9/bits/ios_base.h:41,
                 from /usr/include/c++/9/ios:42,
                 from /usr/include/c++/9/ostream:38,
                 from /usr/include/c++/9/iostream:39,
                 from main.cpp:1:
/usr/include/c++/9/bits/basic_string.tcc:1466:5: note: candidate: ‘template<class _CharT, class _Traits, class _Alloc> std::basic_istream<_CharT, _Traits>& std::operator>>(std::basic_istream<_CharT, _Traits>&, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&)’
 1466 |     operator>>(basic_istream<_CharT, _Traits>& __in,
      |     ^~~~~~~~
/usr/include/c++/9/bits/basic_string.tcc:1466:5: note:   template argument deduction/substitution failed:
main.cpp:75:17: note:   mismatched types ‘std::__cxx11::basic_string<_CharT, _Traits, _Alloc>’ and ‘User()’
   75 |     std::cin >> user;
      |                 ^~~~
In file included from /usr/include/c++/9/istream:991,
                 from /usr/include/c++/9/iostream:40,
                 from main.cpp:1:
/usr/include/c++/9/bits/istream.tcc:931:5: note: candidate: ‘template<class _CharT, class _Traits> std::basic_istream<_CharT, _Traits>& std::operator>>(std::basic_istream<_CharT, _Traits>&, _CharT&)’
  931 |     operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c)
      |     ^~~~~~~~
/usr/include/c++/9/bits/istream.tcc:931:5: note:   template argument deduction/substitution failed:
main.cpp:75:17: note:   deduced conflicting types for parameter ‘_CharT’ (‘char’ and ‘User()’)
   75 |     std::cin >> user;
      |                 ^~~~
In file included from /usr/include/c++/9/iostream:40,
                 from main.cpp:1:
/usr/include/c++/9/istream:756:5: note: candidate: ‘template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(std::basic_istream<char, _Traits>&, unsigned char&)’
  756 |     operator>>(basic_istream<char, _Traits>& __in, unsigned char& __c)
      |     ^~~~~~~~
/usr/include/c++/9/istream:756:5: note:   template argument deduction/substitution failed:
main.cpp:75:17: note:   cannot convert ‘user’ (type ‘User()’) to type ‘unsigned char&’
   75 |     std::cin >> user;
      |                 ^~~~
In file included from /usr/include/c++/9/iostream:40,
                 from main.cpp:1:
/usr/include/c++/9/istream:761:5: note: candidate: ‘template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(std::basic_istream<char, _Traits>&, signed char&)’
  761 |     operator>>(basic_istream<char, _Traits>& __in, signed char& __c)
      |     ^~~~~~~~
/usr/include/c++/9/istream:761:5: note:   template argument deduction/substitution failed:
main.cpp:75:17: note:   cannot convert ‘user’ (type ‘User()’) to type ‘signed char&’
   75 |     std::cin >> user;
      |                 ^~~~
In file included from /usr/include/c++/9/istream:991,
                 from /usr/include/c++/9/iostream:40,
                 from main.cpp:1:
/usr/include/c++/9/bits/istream.tcc:963:5: note: candidate: ‘template<class _CharT2, class _Traits2> std::basic_istream<_CharT, _Traits>& std::operator>>(std::basic_istream<_CharT, _Traits>&, _CharT2*)’
  963 |     operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s)
      |     ^~~~~~~~
/usr/include/c++/9/bits/istream.tcc:963:5: note:   template argument deduction/substitution failed:
main.cpp:75:17: note:   deduced conflicting types for parameter ‘_CharT2’ (‘char’ and ‘User()’)
   75 |     std::cin >> user;
      |                 ^~~~
In file included from /usr/include/c++/9/iostream:40,
                 from main.cpp:1:
/usr/include/c++/9/istream:803:5: note: candidate: ‘template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(std::basic_istream<char, _Traits>&, unsigned char*)’
  803 |     operator>>(basic_istream<char, _Traits>& __in, unsigned char* __s)
      |     ^~~~~~~~
/usr/include/c++/9/istream:803:5: note:   template argument deduction/substitution failed:
main.cpp:75:17: note:   cannot convert ‘user’ (type ‘User()’) to type ‘unsigned char*’
   75 |     std::cin >> user;
      |                 ^~~~
In file included from /usr/include/c++/9/iostream:40,
                 from main.cpp:1:
/usr/include/c++/9/istream:808:5: note: candidate: ‘template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(std::basic_istream<char, _Traits>&, signed char*)’
  808 |     operator>>(basic_istream<char, _Traits>& __in, signed char* __s)
      |     ^~~~~~~~
/usr/include/c++/9/istream:808:5: note:   template argument deduction/substitution failed:
main.cpp:75:17: note:   cannot convert ‘user’ (type ‘User()’) to type ‘signed char*’
   75 |     std::cin >> user;
      |                 ^~~~
In file included from /usr/include/c++/9/iostream:40,
                 from main.cpp:1:
/usr/include/c++/9/istream:980:5: note: candidate: ‘template<class _Istream, class _Tp> typename std::enable_if<std::__and_<std::__not_<std::is_lvalue_reference<_Tp> >, std::__is_convertible_to_basic_istream<_Istream>, std::__is_extractable<typename std::__is_convertible_to_basic_istream<_Tp>::__istream_type, _Tp&&, void> >::value, typename std::__is_convertible_to_basic_istream<_Tp>::__istream_type>::type std::operator>>(_Istream&&, _Tp&&)’
  980 |     operator>>(_Istream&& __is, _Tp&& __x)
      |     ^~~~~~~~
/usr/include/c++/9/istream:980:5: note:   template argument deduction/substitution failed:
/usr/include/c++/9/istream: In substitution of ‘template<class _Istream, class _Tp> typename std::enable_if<std::__and_<std::__not_<std::is_lvalue_reference<_Tp> >, std::__is_convertible_to_basic_istream<_Istream>, std::__is_extractable<typename std::__is_convertible_to_basic_istream<_Tp>::__istream_type, _Tp&&, void> >::value, typename std::__is_convertible_to_basic_istream<_Tp>::__istream_type>::type std::operator>>(_Istream&&, _Tp&&) [with _Istream = std::basic_istream<char>&; _Tp = User (&)()]’:
main.cpp:75:17:   required from here
/usr/include/c++/9/istream:980:5: error: no type named ‘type’ in ‘struct std::enable_if<false, std::basic_istream<char>&>’