#include <iostream>
struct X {
void g(std::ostream&) { std::cout << "g"; }
};
X* f(X& x)
{
std::cout << "f";
return &x;
}
int main()
{
X x;
f(x)->g(std::cout << "a");
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKc3RydWN0IFggewogICAgdm9pZCBnKHN0ZDo6b3N0cmVhbSYpIHsgc3RkOjpjb3V0IDw8ICJnIjsgfQp9OwoKWCogZihYJiB4KQp7CiAgICBzdGQ6OmNvdXQgPDwgImYiOwogICAgcmV0dXJuICZ4Owp9CgppbnQgbWFpbigpCnsKICAgIFggeDsKICAgIGYoeCktPmcoc3RkOjpjb3V0IDw8ICJhIik7Cn0K