fork download
  1. #include <iostream>
  2. #include <algorithm>
  3.  
  4. typedef char byte;
  5. typedef unsigned char ubyte;
  6.  
  7. template<class T>
  8. class CGenerate
  9. {
  10. T counter;
  11. public:
  12. CGenerate() : counter(0)
  13. { }
  14. T operator()()
  15. {
  16. return ++counter;
  17. }
  18. };
  19.  
  20. template<class T>
  21. void Display(T elem)
  22. {
  23. int i = elem;
  24. std::cout << i << std::endl;
  25. }
  26.  
  27. int main()
  28. {
  29. byte arrTest[10];
  30. ubyte uarrTest[10];
  31. std::generate(arrTest, arrTest + 10, CGenerate<byte>());
  32. std::generate(uarrTest, uarrTest + 10, CGenerate<ubyte>());
  33. std::cout << "arrTest (byte):" << std::endl;
  34. std::for_each(arrTest, arrTest + 10, Display<byte>);
  35. std::cout << std::endl << "uarrTest (ubyte):" << std::endl;
  36. std::for_each(uarrTest, uarrTest + 10, Display<ubyte>);
  37. return 0;
  38. }
  39.  
Success #stdin #stdout 0.01s 2724KB
stdin
Standard input is empty
stdout
arrTest (byte):
1
2
3
4
5
6
7
8
9
10

uarrTest (ubyte):
1
2
3
4
5
6
7
8
9
10