#include <functional>
#include <iomanip>
#include <iostream>
#include <sstream>

using namespace std;

typedef function<void(int)> callback;

void callBackTester (int min, int max, callback const& func);

int main()
{
	stringstream state;
	callBackTester(0,10,[&](int i)->void{
		state << i << ", ";
		cout << "callback. input: " << i << ". state: " << state.str() << endl;
	});
}


void callBackTester (int min, int max, callback const& func)
{
	for(; min < max; ++min){
		func(min);
	}
}