//: C05:FuncObject.cpp // From Thinking in C++, 2nd Edition // Available at http://www.BruceEckel.com // (c) Bruce Eckel 2000 // Copyright notice in Copyright.txt // Simple function objects #include using namespace std; template void callFunc(T& x, UnaryFunc f) { f(x); } void g(int& x) { x = 47; } struct UFunc { void operator()(int& x) { x = 48; } }; int main() { int y = 0; callFunc(y, g); cout << y << endl; y = 0; callFunc(y, UFunc()); cout << y << endl; } ///:~