void foreach(int a[], int func(int n)) { for(int i = (sizeof(a) / 4) - 1; i > -1; --i) a[i] = func(a[i]); } example: #include int myprint(int i) { cout << i << endl; return i; } int add1(int i) { return i + 1; } void main() { int arr = {0, 1, 2, 3}; foreach(arr, myprint); foreach(arr, add1); foreach(arr, myprint); }