fork(1) download
  1. #include <iostream>
  2.  
  3. template <typename ResultInt>
  4. class CalcFor
  5. {
  6. public:
  7. CalcFor() : total_(0) { }
  8.  
  9. template <typename T>
  10. void next()
  11. {
  12. total_ += sizeof(T);
  13. }
  14.  
  15. ResultInt total() const { return total_; }
  16.  
  17. private:
  18. ResultInt total_;
  19. };
  20.  
  21. template <typename ResultInt, typename... Ts>
  22. class Calc
  23. {
  24. public:
  25. ResultInt total() const
  26. {
  27. CalcFor<ResultInt> e;
  28. int dummy[] = { (e.template next<Ts>(), 0)... };
  29. (void)dummy;
  30. return e.total();
  31. }
  32. };
  33.  
  34. int main(const int /* argc */, const char* const* /* argv */ )
  35. {
  36. Calc<size_t, int, char> c;
  37. std::cout << c.total() << '\n';
  38. return 0;
  39. }
  40.  
Success #stdin #stdout 0s 16064KB
stdin
Standard input is empty
stdout
5