class foo
{
class bar {};
public:
typedef bar pubbar;
};
int main()
{
foo::pubbar b; // we would not be allowed to name foo::bar, but since we may name
// it's alias foo::pubbar, we can now use foo::bar as if it were public.
}
Y2xhc3MgZm9vCnsKICAgIGNsYXNzIGJhciB7fTsKcHVibGljOgogICAgdHlwZWRlZiBiYXIgcHViYmFyOwp9OwoKaW50IG1haW4oKQp7CiAgICBmb286OnB1YmJhciBiOyAvLyB3ZSB3b3VsZCBub3QgYmUgYWxsb3dlZCB0byBuYW1lIGZvbzo6YmFyLCBidXQgc2luY2Ugd2UgbWF5IG5hbWUKICAgICAgICAgICAgICAgICAgIC8vIGl0J3MgYWxpYXMgZm9vOjpwdWJiYXIsIHdlIGNhbiBub3cgdXNlIGZvbzo6YmFyIGFzIGlmIGl0IHdlcmUgcHVibGljLgp9