

C++11 Continuations - High Performance JNI - code-dog
http://nerds-central.blogspot.co.uk/2012/04/extreme-jni-performance.html

======
cassandravoiton
Closures as continuations in C++, maybe Stroustrup was right when he said it
looks like a completely new language.

~~~
archivator
Indeed. All we need now is bind/callcc and we'd have the ultimate
frankenlanguage!

In all seriousness, I'm really happy to see "lower-level" languages adopting
these features. Makes so many problems that much easier to solve! I wonder
about the implementation details, though - I wouldn't mind reading an analysis
of closures in C++ vs. the VM languages.

~~~
code-dog
The implementation is compiler dependant. Nevertheless, it would appear that
the normal implementation is to create something which looks like a normal
object with pointers back to the state it closes around. In theory it should
be fast and light. The problem (as always with C++) is ensuring that the
things to which the pointers point does not go away. Smart pointers help - but
they are slow...

~~~
gurkendoktor
I think the most common use case for blocks in C++ are functional-ish STL
algorithms, unlike C blocks, which were built for async operations. In that
use case, they absolutely shine - since they don't outlive their parent scope,
no memory management is necessary, they can be inlined and ideally add no
overhead. I think this easily outweighs the cases where you need slow shared
pointers.

