#include <stdint.h>
#include <list>
#include <stdio.h>
#include "timer.h"
#include <boost/foreach.hpp>

int main(int argc, char* argv[])
{
	if (argc < 2)
		abort();

	int n = atol(argv[1]);

	timer_start();
	std::list< uint64_t > list;
	for (int i = 0; i < n; ++i)
		list.push_back(i);
	unsigned long elapsed1 = timer_stop();

	timer_start();
	BOOST_FOREACH (uint64_t& data, list)
		++data;
	unsigned long elapsed2 = timer_stop();

	printf("Fill:  %lu usec\n", elapsed1);
	printf("Inc:   %lu usec\n", elapsed2);
	printf("Total: %lu usec\n", elapsed1 + elapsed2);
	return 0;
}


