foo.cc: In member function ‘void Person::printInfo()’:
foo.cc:40:29: error: no match for ‘operator<<’ (operand types are ‘std::basic_ostream<char>’ and ‘Date’)
40 | cout << name << " " << birth << " " << leave << endl;
| ~~~~~~~~~~~~~~~~~~~ ^~ ~~~~~
| | |
| | Date
| std::basic_ostream<char>
In file included from iostream:41:
/nix/gcc-13.2.0/include/c++/13.2.0/ostream:110:7: note: candidate: ‘std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(__ostream_type& (*)(__ostream_type&)) [with _CharT = char; _Traits = std::char_traits<char>; __ostream_type = std::basic_ostream<char>]’
110 | operator<<(__ostream_type& (*__pf)(__ostream_type&))
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/ostream:110:36: note: no known conversion for argument 1 from ‘Date’ to ‘std::basic_ostream<char>::__ostream_type& (*)(std::basic_ostream<char>::__ostream_type&)’ {aka ‘std::basic_ostream<char>& (*)(std::basic_ostream<char>&)’}
110 | operator<<(__ostream_type& (*__pf)(__ostream_type&))
| ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/ostream:119:7: note: candidate: ‘std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(__ios_type& (*)(__ios_type&)) [with _CharT = char; _Traits = std::char_traits<char>; __ostream_type = std::basic_ostream<char>; __ios_type = std::basic_ios<char>]’
119 | operator<<(__ios_type& (*__pf)(__ios_type&))
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/ostream:119:32: note: no known conversion for argument 1 from ‘Date’ to ‘std::basic_ostream<char>::__ios_type& (*)(std::basic_ostream<char>::__ios_type&)’ {aka ‘std::basic_ios<char>& (*)(std::basic_ios<char>&)’}
119 | operator<<(__ios_type& (*__pf)(__ios_type&))
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/ostream:129:7: 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>; __ostream_type = std::basic_ostream<char>]’
129 | operator<<(ios_base& (*__pf) (ios_base&))
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/ostream:129:30: note: no known conversion for argument 1 from ‘Date’ to ‘std::ios_base& (*)(std::ios_base&)’
129 | operator<<(ios_base& (*__pf) (ios_base&))
| ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/ostream:168:7: 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>; __ostream_type = std::basic_ostream<char>]’
168 | operator<<(long __n)
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/ostream:168:23: note: no known conversion for argument 1 from ‘Date’ to ‘long int’
168 | operator<<(long __n)
| ~~~~~^~~
/nix/gcc-13.2.0/include/c++/13.2.0/ostream:172:7: 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>; __ostream_type = std::basic_ostream<char>]’
172 | operator<<(unsigned long __n)
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/ostream:172:32: note: no known conversion for argument 1 from ‘Date’ to ‘long unsigned int’
172 | operator<<(unsigned long __n)
| ~~~~~~~~~~~~~~^~~
/nix/gcc-13.2.0/include/c++/13.2.0/ostream:176:7: note: candidate: ‘std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(bool) [with _CharT = char; _Traits = std::char_traits<char>; __ostream_type = std::basic_ostream<char>]’
176 | operator<<(bool __n)
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/ostream:176:23: note: no known conversion for argument 1 from ‘Date’ to ‘bool’
176 | operator<<(bool __n)
| ~~~~~^~~
In file included from /nix/gcc-13.2.0/include/c++/13.2.0/ostream:880:
/nix/gcc-13.2.0/include/c++/13.2.0/bits/ostream.tcc:96:5: note: candidate: ‘std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(short int) [with _CharT = char; _Traits = std::char_traits<char>]’
96 | basic_ostream<_CharT, _Traits>::
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/bits/ostream.tcc:97:22: note: no known conversion for argument 1 from ‘Date’ to ‘short int’
97 | operator<<(short __n)
| ~~~~~~^~~
/nix/gcc-13.2.0/include/c++/13.2.0/ostream:183:7: 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>; __ostream_type = std::basic_ostream<char>]’
183 | operator<<(unsigned short __n)
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/ostream:183:33: note: no known conversion for argument 1 from ‘Date’ to ‘short unsigned int’
183 | operator<<(unsigned short __n)
| ~~~~~~~~~~~~~~~^~~
/nix/gcc-13.2.0/include/c++/13.2.0/bits/ostream.tcc:110:5: note: candidate: ‘std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(int) [with _CharT = char; _Traits = std::char_traits<char>]’
110 | basic_ostream<_CharT, _Traits>::
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/bits/ostream.tcc:111:20: note: no known conversion for argument 1 from ‘Date’ to ‘int’
111 | operator<<(int __n)
| ~~~~^~~
/nix/gcc-13.2.0/include/c++/13.2.0/ostream:194:7: 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>; __ostream_type = std::basic_ostream<char>]’
194 | operator<<(unsigned int __n)
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/ostream:194:31: note: no known conversion for argument 1 from ‘Date’ to ‘unsigned int’
194 | operator<<(unsigned int __n)
| ~~~~~~~~~~~~~^~~
/nix/gcc-13.2.0/include/c++/13.2.0/ostream:203:7: 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>; __ostream_type = std::basic_ostream<char>]’
203 | operator<<(long long __n)
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/ostream:203:28: note: no known conversion for argument 1 from ‘Date’ to ‘long long int’
203 | operator<<(long long __n)
| ~~~~~~~~~~^~~
/nix/gcc-13.2.0/include/c++/13.2.0/ostream:207:7: 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>; __ostream_type = std::basic_ostream<char>]’
207 | operator<<(unsigned long long __n)
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/ostream:207:37: note: no known conversion for argument 1 from ‘Date’ to ‘long long unsigned int’
207 | operator<<(unsigned long long __n)
| ~~~~~~~~~~~~~~~~~~~^~~
/nix/gcc-13.2.0/include/c++/13.2.0/ostream:222:7: note: candidate: ‘std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(double) [with _CharT = char; _Traits = std::char_traits<char>; __ostream_type = std::basic_ostream<char>]’
222 | operator<<(double __f)
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/ostream:222:25: note: no known conversion for argument 1 from ‘Date’ to ‘double’
222 | operator<<(double __f)
| ~~~~~~~^~~
/nix/gcc-13.2.0/include/c++/13.2.0/ostream:226:7: note: candidate: ‘std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(float) [with _CharT = char; _Traits = std::char_traits<char>; __ostream_type = std::basic_ostream<char>]’
226 | operator<<(float __f)
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/ostream:226:24: note: no known conversion for argument 1 from ‘Date’ to ‘float’
226 | operator<<(float __f)
| ~~~~~~^~~
/nix/gcc-13.2.0/include/c++/13.2.0/ostream:234:7: 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>; __ostream_type = std::basic_ostream<char>]’
234 | operator<<(long double __f)
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/ostream:234:30: note: no known conversion for argument 1 from ‘Date’ to ‘long double’
234 | operator<<(long double __f)
| ~~~~~~~~~~~~^~~
/nix/gcc-13.2.0/include/c++/13.2.0/ostream:292:7: 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>; __ostream_type = std::basic_ostream<char>]’
292 | operator<<(const void* __p)
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/ostream:292:30: note: no known conversion for argument 1 from ‘Date’ to ‘const void*’
292 | operator<<(const void* __p)
| ~~~~~~~~~~~~^~~
/nix/gcc-13.2.0/include/c++/13.2.0/bits/ostream.tcc:124:5: note: candidate: ‘std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(__streambuf_type*) [with _CharT = char; _Traits = std::char_traits<char>; __streambuf_type = std::basic_streambuf<char>]’
124 | basic_ostream<_CharT, _Traits>::
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/bits/ostream.tcc:125:34: note: no known conversion for argument 1 from ‘Date’ to ‘std::basic_ostream<char>::__streambuf_type*’ {aka ‘std::basic_streambuf<char>*’}
125 | operator<<(__streambuf_type* __sbin)
| ~~~~~~~~~~~~~~~~~~^~~~~~
In file included from /nix/gcc-13.2.0/include/c++/13.2.0/string:54,
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:
/nix/gcc-13.2.0/include/c++/13.2.0/bits/basic_string.h:4020:5: note: candidate: ‘template<class _CharT, class _Traits, class _Alloc> std::basic_ostream<_CharT, _Traits>& std::operator<<(basic_ostream<_CharT, _Traits>&, const __cxx11::basic_string<_CharT, _Traits, _Alloc>&)’
4020 | operator<<(basic_ostream<_CharT, _Traits>& __os,
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/bits/basic_string.h:4020:5: note: template argument deduction/substitution failed:
foo.cc:40:32: note: ‘Date’ is not derived from ‘const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>’
40 | cout << name << " " << birth << " " << leave << endl;
| ^~~~~
In file included from /nix/gcc-13.2.0/include/c++/13.2.0/bits/ios_base.h:46:
/nix/gcc-13.2.0/include/c++/13.2.0/system_error:339:5: note: candidate: ‘template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(basic_ostream<_CharT, _Traits>&, const error_code&)’
339 | operator<<(basic_ostream<_CharT, _Traits>& __os, const error_code& __e)
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/system_error:339:5: note: template argument deduction/substitution failed:
foo.cc:40:32: note: cannot convert ‘((Person*)this)->Person::birth’ (type ‘Date’) to type ‘const std::error_code&’
40 | cout << name << " " << birth << " " << leave << endl;
| ^~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/ostream:554:5: note: candidate: ‘template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(basic_ostream<_CharT, _Traits>&, _CharT)’
554 | operator<<(basic_ostream<_CharT, _Traits>& __out, _CharT __c)
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/ostream:554:5: note: template argument deduction/substitution failed:
foo.cc:40:32: note: deduced conflicting types for parameter ‘_CharT’ (‘char’ and ‘Date’)
40 | cout << name << " " << birth << " " << leave << endl;
| ^~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/ostream:564:5: note: candidate: ‘template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(basic_ostream<_CharT, _Traits>&, char)’
564 | operator<<(basic_ostream<_CharT, _Traits>& __out, char __c)
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/ostream:564:5: note: template argument deduction/substitution failed:
foo.cc:40:32: note: cannot convert ‘((Person*)this)->Person::birth’ (type ‘Date’) to type ‘char’
40 | cout << name << " " << birth << " " << leave << endl;
| ^~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/ostream:570:5: note: candidate: ‘template<class _Traits> std::basic_ostream<char, _Traits>& std::operator<<(basic_ostream<char, _Traits>&, char)’
570 | operator<<(basic_ostream<char, _Traits>& __out, char __c)
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/ostream:570:5: note: template argument deduction/substitution failed:
foo.cc:40:32: note: cannot convert ‘((Person*)this)->Person::birth’ (type ‘Date’) to type ‘char’
40 | cout << name << " " << birth << " " << leave << endl;
| ^~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/ostream:581:5: note: candidate: ‘template<class _Traits> std::basic_ostream<char, _Traits>& std::operator<<(basic_ostream<char, _Traits>&, signed char)’
581 | operator<<(basic_ostream<char, _Traits>& __out, signed char __c)
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/ostream:581:5: note: template argument deduction/substitution failed:
foo.cc:40:32: note: cannot convert ‘((Person*)this)->Person::birth’ (type ‘Date’) to type ‘signed char’
40 | cout << name << " " << birth << " " << leave << endl;
| ^~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/ostream:586:5: note: candidate: ‘template<class _Traits> std::basic_ostream<char, _Traits>& std::operator<<(basic_ostream<char, _Traits>&, unsigned char)’
586 | operator<<(basic_ostream<char, _Traits>& __out, unsigned char __c)
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/ostream:586:5: note: template argument deduction/substitution failed:
foo.cc:40:32: note: cannot convert ‘((Person*)this)->Person::birth’ (type ‘Date’) to type ‘unsigned char’
40 | cout << name << " " << birth << " " << leave << endl;
| ^~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/ostream:645:5: note: candidate: ‘template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(basic_ostream<_CharT, _Traits>&, const _CharT*)’
645 | operator<<(basic_ostream<_CharT, _Traits>& __out, const _CharT* __s)
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/ostream:645:5: note: template argument deduction/substitution failed:
foo.cc:40:32: note: mismatched types ‘const _CharT*’ and ‘Date’
40 | cout << name << " " << birth << " " << leave << endl;
| ^~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/bits/ostream.tcc:307:5: note: candidate: ‘template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(basic_ostream<_CharT, _Traits>&, const char*)’
307 | operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s)
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/bits/ostream.tcc:307:5: note: template argument deduction/substitution failed:
foo.cc:40:32: note: cannot convert ‘((Person*)this)->Person::birth’ (type ‘Date’) to type ‘const char*’
40 | cout << name << " " << birth << " " << leave << endl;
| ^~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/ostream:662:5: note: candidate: ‘template<class _Traits> std::basic_ostream<char, _Traits>& std::operator<<(basic_ostream<char, _Traits>&, const char*)’
662 | operator<<(basic_ostream<char, _Traits>& __out, const char* __s)
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/ostream:662:5: note: template argument deduction/substitution failed:
foo.cc:40:32: note: cannot convert ‘((Person*)this)->Person::birth’ (type ‘Date’) to type ‘const char*’
40 | cout << name << " " << birth << " " << leave << endl;
| ^~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/ostream:675:5: note: candidate: ‘template<class _Traits> std::basic_ostream<char, _Traits>& std::operator<<(basic_ostream<char, _Traits>&, const signed char*)’
675 | operator<<(basic_ostream<char, _Traits>& __out, const signed char* __s)
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/ostream:675:5: note: template argument deduction/substitution failed:
foo.cc:40:32: note: cannot convert ‘((Person*)this)->Person::birth’ (type ‘Date’) to type ‘const signed char*’
40 | cout << name << " " << birth << " " << leave << endl;
| ^~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/ostream:680:5: note: candidate: ‘template<class _Traits> std::basic_ostream<char, _Traits>& std::operator<<(basic_ostream<char, _Traits>&, const unsigned char*)’
680 | operator<<(basic_ostream<char, _Traits>& __out, const unsigned char* __s)
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/ostream:680:5: note: template argument deduction/substitution failed:
foo.cc:40:32: note: cannot convert ‘((Person*)this)->Person::birth’ (type ‘Date’) to type ‘const unsigned char*’
40 | cout << name << " " << birth << " " << leave << endl;
| ^~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/ostream:801:5: note: candidate: ‘template<class _Ostream, class _Tp> _Ostream&& std::operator<<(_Ostream&&, const _Tp&)’
801 | operator<<(_Ostream&& __os, const _Tp& __x)
| ^~~~~~~~
/nix/gcc-13.2.0/include/c++/13.2.0/ostream:801:5: note: template argument deduction/substitution failed:
/nix/gcc-13.2.0/include/c++/13.2.0/ostream: In substitution of ‘template<class _Ostream, class _Tp> _Ostream&& std::operator<<(_Ostream&&, const _Tp&) [with _Ostream = std::basic_ostream<char>&; _Tp = Date]’:
foo.cc:40:32: required from here
/nix/gcc-13.2.0/include/c++/13.2.0/ostream:801:5: error: no type named ‘type’ in ‘struct std::enable_if<false, void>’