In the proxy section the Design Patter from the Gang of Four says:
Overloading the member access operator isn't a good solution for every kind of proxy. Some proxies need to know precisely which operation is called, and overloading the member access operator doesn't work in those cases.
[...]
In that case we must manually implement each proxy operation that forwards the request to the subject.
[...]
Typically all operations verify that the request is legal, that the original object exists, etc., before forwarding the request to the subject. It's tedious to write this code again and again. So it's common to use a preprocessor to generate it automatically.
OK, which preprocessor and how in C++?