Greetings, I am now using C++14 standards, the error reporting is all compile-time now and I get a test that is 3.5 faster than Node.JS! You can see it by yourselves here: https://github.com/philippeb8/root_ptr/tree/bb++/bbpp2cpp Furthermore there is no need for 'operator ->' anymore because the access operator is deduced at compile-time. Here is a code sample: int main() { int temporary = 1; auto foo = function () { return function (int argument) { return argument; }; }; for (int i = 0; i < 1000000; ++ i) cout << foo()(temporary) << endl; } Note that it's also possible to dynamically allocate function pointers like this: int main() { int temporary = 1; auto foo = new function () { return new function (int argument) { return argument; }; }; for (int i = 0; i < 1000000; ++ i) cout << foo()(temporary) << endl; } I will show you a clear example of cyclic references handling soon. Regards, -Phil http://bbplusplus.com/