Comment
Comment by kazinator
I implemented exactly the same thing 20 years ago. It looked something like:
It used thread-local storage and all. The global constructor for the Dynamic<> template class would allocate the thread specific key. The DynamicBind<> template class did the saving, location altering, and restoring.