#include <string>
#include <iostream>
#define PFUNC() do { std::cout << __FUNCTION__ << "\n"; } while (0)
class MyFoo;
class MyBar {
MyFoo* foo;
public :
MyBar( MyFoo* foo) : foo( foo) {
}
void DoStuff( ) {
PFUNC( ) ;
foo- > DoStuff( ) ;
}
} ;
class MyFoo {
public :
void DoStuff( ) {
PFUNC( ) ;
}
} ;
int main( ) {
MyFoo foo;
MyBar bar( & foo) ;
bar.DoStuff ( ) ;
}
CiNpbmNsdWRlIDxzdHJpbmc+CiNpbmNsdWRlIDxpb3N0cmVhbT4KCiNkZWZpbmUgUEZVTkMoKSBkbyB7IHN0ZDo6Y291dCA8PCBfX0ZVTkNUSU9OX18gPDwgIlxuIjsgfSB3aGlsZSAoMCkKCmNsYXNzIE15Rm9vOwoKY2xhc3MgTXlCYXIgewogICAgCiAgICBNeUZvbyogZm9vOwoKcHVibGljOgoKICAgIE15QmFyKE15Rm9vKiBmb28pIDogZm9vKGZvbykgewogICAgfQoKICAgIHZvaWQgRG9TdHVmZigpIHsKICAgICAgICBQRlVOQygpOwogICAgICAgIGZvby0+RG9TdHVmZigpOwogICAgfQp9OwoKY2xhc3MgTXlGb28gewogICAgCnB1YmxpYzoKCiAgICB2b2lkIERvU3R1ZmYoKSB7CiAgICAgICAgUEZVTkMoKTsKICAgIH0KfTsKCmludCBtYWluKCkgewogICAgTXlGb28gZm9vOwogICAgTXlCYXIgYmFyKCZmb28pOwogICAgCiAgICBiYXIuRG9TdHVmZigpOwp9Cg==