home *** CD-ROM | disk | FTP | other *** search
- //: C21:FuncObject.cpp
- // From Thinking in C++, 2nd Edition
- // Available at http://www.BruceEckel.com
- // (c) Bruce Eckel 1999
- // Copyright notice in Copyright.txt
- // Simple function objects
- #include <iostream>
- using namespace std;
-
- template<class UnaryFunc, class T>
- 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;
- } ///:~
-