Конечно, пока вы передаете дескриптор файла / объект в рекурсивную функцию:
void recursion(int data, int maxdepth, ostream &os)
{
// must eventually break out
if (maxdepth == 0)
return;
// write data
os << data << std::endl;
// and call one deeper
recursion(data + 1, maxdepth - 1, os);
}
void start(const char *filename)
{
std::ofstream os(filename);
recursion(0, 100, os);
}