Damn, forget my own code...
Sorry, but my code isn't good because `memmove` is called without any need at first access to `Scoped_payload `. This is the right way to initialize `&result.Scoped_store[$ - size_t.sizeof]` (instead of this line and the next one):
```D
void* alignedStore = cast(void*) aligned(cast(size_t) Scoped_store.ptr);
immutable size_t d = alignedStore - Scoped_store.ptr;
```