There is the proposal for a y combinator in C++: y_combinator
Here is the implementation:
class createYCombinator { Fun fun_; public: template