fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. template<typename T>
  5. class auto_delim_manip
  6. {
  7. public:
  8. auto_delim_manip(T value_, char delim_)
  9. : value(value_)
  10. , delim(delim_) {}
  11. void put(std::ostream& os) const {
  12. os << value << delim;
  13. os.flush();
  14. }
  15. private:
  16. T value;
  17. char delim;
  18. };
  19.  
  20. template<typename T>
  21. auto_delim_manip<T> auto_delim(T value, char delim = '\n') {
  22. return auto_delim_manip<T>(value,delim);
  23. }
  24.  
  25. template<typename T>
  26. std::ostream& operator<<(std::ostream& os, const auto_delim_manip<T>& autoDelim) {
  27. autoDelim.put(os);
  28. return os;
  29. }
  30.  
  31. int main() {
  32.  
  33. cout << auto_delim(5.2) << auto_delim(3) << auto_delim("Hello!");
  34.  
  35. return 0;
  36. }
Success #stdin #stdout 0s 3296KB
stdin
Standard input is empty
stdout
5.2
3
Hello!