Each object in memory has an alignment imposed on it by the alignment requirement of the corresponding type (the location address must be a multiple).
The main consequence of alignment is that consecutive variables or class members might require additional space for necessary padding.
When constructing objects in place, the pointer may need to be manually aligned.
Compiler Explorer link: https://compiler-explorer.com/z/h165WE8n6