Return the address of the unsigned char[] array from aligned_storage::address #168
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The standard says in https://eel.is/c++draft/basic.memobj#intro.object-3 that an array of
unsigned char
can provide storage for objects created in it with placementnew
. But it doesn't say anything about arrays ofchar
or about object types such asaligned_storage_imp
.To be on the right side of it, this changes
aligned_storage_imp
to contain an array ofunsigned char
instead ofchar
, and to return its address from theaddress
member function, instead ofthis
.This is a relatively high risk change, because
aligned_storage
is used, at least, in the following libraries:I've verified that the following tests:
are not affected by the change, that is, no new failures are introduced by it.