#include <stdio.h>
#define INNER_STRUCT
class A
{
public:
template<class T> void Func( T& ){}
};
#ifndef INNER_STRUCT
struct Visitor
{};
#endif
int main( void )
{
A a;
#ifdef INNER_STRUCT
struct Visitor
{};
#endif
Visitor v;
a.Func<Visitor>( v );
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIElOTkVSX1NUUlVDVAoKY2xhc3MgQQp7CnB1YmxpYzoKdGVtcGxhdGU8Y2xhc3MgVD4gdm9pZCBGdW5jKCBUJiApe30KfTsKCSNpZm5kZWYgSU5ORVJfU1RSVUNUCglzdHJ1Y3QgVmlzaXRvcgoJe307CgkjZW5kaWYKaW50IG1haW4oIHZvaWQgKQp7CglBIGE7CgkjaWZkZWYgSU5ORVJfU1RSVUNUCglzdHJ1Y3QgVmlzaXRvcgoJe307CgkjZW5kaWYKCVZpc2l0b3IgdjsKCWEuRnVuYzxWaXNpdG9yPiggdiApOwogICAgcmV0dXJuIDA7Cn0=