fork download
  1. #include <iostream>
  2. #include <cstdint>
  3. using namespace std;
  4.  
  5. template<class T>
  6. class integer_IO
  7. {
  8. T &val;
  9.  
  10. public:
  11.  
  12. integer_IO(T &arg) : val(arg) {}
  13.  
  14. friend istream &operator>> (istream &is, integer_IO<T> &&i)
  15. {
  16. decltype(+(i.val)) hlp;
  17. is >> hlp;
  18. i.val = hlp;
  19. return is;
  20. }
  21.  
  22. friend ostream &operator<< (ostream &os, integer_IO<T> const &&i)
  23. {
  24. os << +(i.val);
  25. return os;
  26. }
  27. };
  28.  
  29. template<class T>
  30. integer_IO<T> intIO(T &arg)
  31. {
  32. return integer_IO<T>(arg);
  33. }
  34.  
  35. int main()
  36. {
  37. int_least8_t i;
  38. cin >> intIO(i);
  39. cout << intIO(i) << '\n';
  40. }
Success #stdin #stdout 0s 3460KB
stdin
49
stdout
49