#include <iostream>
class Foo {
struct Bar { int i; };
typedef Bar return_type_from_Baz;
public:
return_type_from_Baz Baz() { return Bar(); }
};
int main() {
Foo f;
// Foo::Bar b = f.Baz(); // error
auto b = f.Baz(); // ok
std::cout << b.i;
}
I2luY2x1ZGUgPGlvc3RyZWFtPiAKCmNsYXNzIEZvbyB7CiAgICBzdHJ1Y3QgQmFyIHsgaW50IGk7IH07IAogICAgdHlwZWRlZiBCYXIgcmV0dXJuX3R5cGVfZnJvbV9CYXo7IApwdWJsaWM6IAogICAgcmV0dXJuX3R5cGVfZnJvbV9CYXogQmF6KCkgeyByZXR1cm4gQmFyKCk7IH0KfTsKCmludCBtYWluKCkgewogICAgRm9vIGY7CiAgICAvLyBGb286OkJhciBiID0gZi5CYXooKTsgIC8vIGVycm9yCiAgICBhdXRvIGIgPSBmLkJheigpOyAgICAgICAgIC8vIG9rCiAgICBzdGQ6OmNvdXQgPDwgYi5pOwp9