fork download
  1. #include <iostream>
  2.  
  3. struct MyClass {
  4. int i;
  5. std::string s;
  6. };
  7.  
  8. std::ostream& std::ostream::operator<< (std::ostream& os, MyClass& m) {
  9. os << "i = " << m.i << std::endl;
  10. os << "s = " << m.s << std::endl;
  11. return os;
  12. }
  13.  
  14. int main() {
  15. // your code goes here
  16. MyClass m = {12345678, "Pinus"};
  17. std::cout << m << std::endl;
  18. return 0;
  19. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
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)
     ^
stdout
Standard output is empty