Though I can't see any application for this...
Code:
class Foo
{
public:
    int operator()(){return 0;}
};
Foo main;
I was quite surprised to see this compile without a single warning.
But unfortunately...it gives a segfault as soon as it begins running (and gdb downright refuses to help me track it).
Any idea of something...say.. calling conventions... that can be modified to make this work ?

P.S : I have evidence(in the form of putting a print statement in Foo's ctor) that "main" is created before the segfault occurs.