Closures/Value capture: Difference between revisions

Content deleted Content added
→‎{{header|C}}: Additional portability comments.
→‎{{header|C}}: it's a lot worse than that
Line 5: Line 5:


=={{header|C}}==
=={{header|C}}==
Non-portable. Works on x86 platform without NX protection. Depends on implementation-specific semantics of volatile which might be next to nothing for a nonstatic local variable whose address is never taken.
Non-portable. Copying a function body depends on implementation-specific semantics of volatile, if the replacement target still exists afte optimization, if the dest memory is suitably aligned, if the memory is executable, if it makes any function calls to a relative offset, if it refers to any memory location with an absolute address, etc. It only very occasionally works.


<lang c>#include <stdio.h>
<lang c>#include <stdio.h>