#include <iostream>
void _init_without(int& a, int& b) { a = 3; b = 4; }
void _init(int& a, int& b) { a = 2; b = 3; }
void init(int& a, int& b, void (*f)(int&, int&)){
f(a, b); // function pointer
_init_without(a, b) // without
}
int main(){
int x, b;
init(x, b, _init);
std::cout<<x << " " << b;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdm9pZCBfaW5pdF93aXRob3V0KGludCYgYSwgaW50JiBiKSB7IGEgPSAzOyBiID0gNDsgfQoKdm9pZCBfaW5pdChpbnQmIGEsIGludCYgYikgeyBhID0gMjsgYiA9IDM7IH0KCnZvaWQgaW5pdChpbnQmIGEsIGludCYgYiwgdm9pZCAoKmYpKGludCYsIGludCYpKXsKICAgIGYoYSwgYik7IC8vIGZ1bmN0aW9uIHBvaW50ZXIKICAgIF9pbml0X3dpdGhvdXQoYSwgYikgLy8gd2l0aG91dAp9CgppbnQgbWFpbigpewogICAgaW50IHgsIGI7CiAgICBpbml0KHgsIGIsIF9pbml0KTsKICAgIHN0ZDo6Y291dDw8eCA8PCAiICIgPDwgYjsKfQ==
prog.cpp: In function ‘void init(int&, int&, void (*)(int&, int&))’:
prog.cpp:10:1: error: expected ‘;’ before ‘}’ token
}
^