#include <stdio.h>

template <typename T, typename FT, FT &F>
void myforeach(T *p, int N)
{
    for(int i = 0; i < N; i++)
    {
        F(p[i]);
    }
}

int y = 2;
auto f = [=](int &x) { x = x * y; };

int main()
{
    int a[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
    myforeach<int, decltype(f), f>(a, 10);
    for(int i = 0; i < 10; i++)
    {
        printf("%d ", a[i]);
    }
    printf("\n");
    return 0;
}
