#include <iostream>
struct MyClass {
int i;
std::string s;
};
std::ostream& std::ostream::operator<< (std::ostream& os, MyClass& m) {
os << "i = " << m.i << std::endl;
os << "s = " << m.s << std::endl;
return os;
}
int main() {
// your code goes here
MyClass m = {12345678, "Pinus"};
std::cout << m << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKc3RydWN0IE15Q2xhc3MgewoJaW50IGk7CglzdGQ6OnN0cmluZyBzOwp9OwoKc3RkOjpvc3RyZWFtJiBzdGQ6Om9zdHJlYW06Om9wZXJhdG9yPDwgKHN0ZDo6b3N0cmVhbSYgb3MsIE15Q2xhc3MmIG0pIHsKCW9zIDw8ICJpID0gIiA8PCBtLmkgPDwgc3RkOjplbmRsOwoJb3MgPDwgInMgPSAiIDw8IG0ucyA8PCBzdGQ6OmVuZGw7CglyZXR1cm4gb3M7Cn0KCmludCBtYWluKCkgewoJLy8geW91ciBjb2RlIGdvZXMgaGVyZQoJTXlDbGFzcyBtID0gezEyMzQ1Njc4LCAiUGludXMifTsKCXN0ZDo6Y291dCA8PCBtIDw8IHN0ZDo6ZW5kbDsKCXJldHVybiAwOwp9
prog.cpp:8:13: error: specializing member 'std::basic_ostream<char>::operator<<' requires 'template<>' syntax
std::ostream& std::ostream::operator<< (std::ostream& os, MyClass& m) {
^
prog.cpp: In function 'int main()':
prog.cpp:17:15: error: cannot bind 'std::ostream {aka std::basic_ostream<char>}' lvalue to 'std::basic_ostream<char>&&'
std::cout << m << std::endl;
^
In file included from /usr/include/c++/4.9/iostream:39:0,
from prog.cpp:1:
/usr/include/c++/4.9/ostream:602:5: note: initializing argument 1 of 'std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&&, const _Tp&) [with _CharT = char; _Traits = std::char_traits<char>; _Tp = MyClass]'
operator<<(basic_ostream<_CharT, _Traits>&& __os, const _Tp& __x)
^