class Foo
{
typedef void (Foo::*bool_type)() const;
public:
operator bool_type() const;
// other syntax
void (Foo::* some_func () const) () const; // ok! named function
void (Foo::* operator * () const) () const; // ok! operator *
// void (Foo::* operator () const) () const; // error! typecasting operator
};
int main ()
{}
Y2xhc3MgRm9vIAp7CiAgICB0eXBlZGVmIHZvaWQgKEZvbzo6KmJvb2xfdHlwZSkoKSBjb25zdDsKcHVibGljOgogICAgb3BlcmF0b3IgYm9vbF90eXBlKCkgY29uc3Q7CgovLyBvdGhlciBzeW50YXgKICAgIHZvaWQgKEZvbzo6KiBzb21lX2Z1bmMgKCkgY29uc3QpICgpIGNvbnN0OyAgLy8gb2shIG5hbWVkIGZ1bmN0aW9uCiAgICB2b2lkIChGb286Oiogb3BlcmF0b3IgKiAoKSBjb25zdCkgKCkgY29uc3Q7ICAvLyBvayEgb3BlcmF0b3IgKgogICAgLy8gdm9pZCAoRm9vOjoqIG9wZXJhdG9yICgpIGNvbnN0KSAoKSBjb25zdDsgIC8vIGVycm9yISB0eXBlY2FzdGluZyBvcGVyYXRvcgp9OwoKaW50IG1haW4gKCkKe30=