Ponder this simple yet useful class...



Code:

class Iter {

double current, count;

public:

Iter(int _count = 1):count(_count)
 {
  current = 0;
 }

bool True()
 {
  if( current == count ) return false;

  current++;
  
  return true;
 }

void False()
 {
  current = count;
 }

bool IsTrue(){ return current != count; }

bool IsFalse(){ return current == count; }

void Reset(int resetTo = 0) {  current = resetTo; }
};



...assume we have problems with some values in an array, and need to debug...




Code:


int main()
 {

  int array[100000];

  //...process array...
  
  int x;
  Iter i;


for(x = 0; x < 100000; x++)
{
 if(array[x] != expected_value)
 if(i.True())
  {
    printf("Look-> %i", array[x]);  //...prints 1 time max...           
  }


i.Reset(10);

for(x = 0; x < 100000; x++)
{
 if(array[x] != another_expected_value)
 if(i.True())
  {
    printf("Look-> %i", array[x]);   //...prints 10 times max...      
  }

return 0;
}


I have been using this simple class for smart booleans, quick iterators, and initializers.
Though simple, it is a nice addition to any toolbox.