fork download
  1. #include <iostream>
  2.  
  3. struct loop_counter {
  4. loop_counter(int v) : val_(v) {}
  5. explicit operator bool() const { return true; }
  6. operator int() const { return val_; }
  7.  
  8. private:
  9. int val_;
  10. };
  11.  
  12. #define LOOP(begin, end, cnt_name) \
  13.   for(int cnt_name##__ = begin ; cnt_name##__ < end ; ++cnt_name##__) \
  14.   if(const loop_counter cnt_name = cnt_name##__)
  15.  
  16. int main(int argc, char** argv) {
  17. LOOP(0, 10, i) {
  18. //i = 10; // !!!yamero!!!
  19. std::cout << i << std::endl;
  20. }
  21. }
Success #stdin #stdout 0s 2896KB
stdin
Standard input is empty
stdout
0
1
2
3
4
5
6
7
8
9