fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class logger {
  5. private:
  6. class append_endl {
  7. public:
  8. ~append_endl() {
  9. std::cout << std::endl;
  10. }
  11. template <typename T>
  12. append_endl& operator<<(T const &value) {
  13. std::cout << value;
  14. return *this;
  15. }
  16. };
  17. public:
  18. template <typename T>
  19. append_endl operator<<(T const &value) {
  20. std::cout << value;
  21. return append_endl();
  22. }
  23. };
  24.  
  25. int main() {
  26. logger log;
  27. log << "Hello";
  28. log << "World";
  29. log << "Hello" << "World";
  30. return 0;
  31. }
Success #stdin #stdout 0s 3340KB
stdin
Standard input is empty
stdout
Hello
World
HelloWorld