struct function
{
function operator () ()
{
//do stuff;
return function();
}
};
int main()
{
function f;
f()()()()()();
}
You can choose to return a reference to function if needed and return *this
;
Update: Of course, it is syntactically impossible for a function of type T
to return T*
or T&
Update2:
Of course, if you want one to preserve your syntax... that is
some_type f()
{
}
Then here's an Idea
struct functor;
functor f();
struct functor
{
functor operator()()
{
return f();
}
};
functor f()
{
return functor();
}
int main()
{
f()()()()();
}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…