#include <iostream>
#include <boost/range/irange.hpp>

template<typename T>
std::vector<T> range_from_zero(T limit)
{
    auto range = boost::irange<T>(T(), limit);
    return { std::begin(range), std::end(range) };
}

int main() {
	size_t end = 100;
    for (auto i : range_from_zero(end))
    	std::cout << i << ' ';

	return 0;
}