typedef int INT;
class Foo {
Foo();
(Foo)(float) { }
explicit Foo(int); Foo(const Foo&);
((Foo))(INT);
Foo(Foo foo, int i = 17, int j = 42);
static Foo(short, short); virtual Foo(double); Foo(long) const;
int Foo(int, int); };
Foo::Foo(const Foo&) { }
typedef struct {
int version;
} Anon;
extern const Anon anon;
extern "C" const Anon anon2;
struct x;
extern x a;
struct y {
y(int);
};
extern y b;
struct Length {
Length l() const { return *this; }
};
struct mmst_reg{
char mmst_reg[10];
};
namespace PR3948 {
class a {
public:
int b(int a());
};
int x();
void y() {
a z; z.b(x);
}
}
namespace A {
struct S {
S();
S(int);
void f1();
void f2();
operator int ();
~S();
};
}
A::S::S() {}
void A::S::f1() {}
struct S {};
A::S::S(int) {}
void A::S::f2() {}
A::S::operator int() { return 1; }
A::S::~S() {}