#include <iostream>
#include <iterator>
#include <vector>

template <typename OutputIterator>
OutputIterator F1( OutputIterator out )
{
    std::cout << "F1 was called\n";
    /* Insert stuff via *out++ = ...; */
    *out++ = 7;
    return out;
}

int main()
{
    std::vector<int> Concat;
    // perhaps reserve some moderate amount of storage to avoid reallocation

    F1( std::back_inserter(Concat) );
    F1( std::back_inserter(Concat) );
    
    
    for (auto i : Concat)
        std::cout << i << ", ";
}