#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;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgRlQsIEZUICZGPgp2b2lkIG15Zm9yZWFjaChUICpwLCBpbnQgTikKewogICAgZm9yKGludCBpID0gMDsgaSA8IE47IGkrKykKICAgIHsKICAgICAgICBGKHBbaV0pOwogICAgfQp9CgppbnQgeSA9IDI7CmF1dG8gZiA9IFs9XShpbnQgJngpIHsgeCA9IHggKiB5OyB9OwoKaW50IG1haW4oKQp7CiAgICBpbnQgYVsxMF0gPSB7IDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDkgfTsKICAgIG15Zm9yZWFjaDxpbnQsIGRlY2x0eXBlKGYpLCBmPihhLCAxMCk7CiAgICBmb3IoaW50IGkgPSAwOyBpIDwgMTA7IGkrKykKICAgIHsKICAgICAgICBwcmludGYoIiVkICIsIGFbaV0pOwogICAgfQogICAgcHJpbnRmKCJcbiIpOwogICAgcmV0dXJuIDA7Cn0K