On Saturday, 7 August 2021 at 13:36:52 UTC, james.p.leblanc wrote:
On Saturday, 7 August 2021 at 12:08:00 UTC, Paul Backus wrote:
[...]
**First, thanks all for helping with this question!**
The simple desire to arbitrarily align an array is certainly
looking non-trivial.
Below is a simple program of both the suggested "struct" and
"align array" solutions.
Unfortunately, neither is guaranteed to place the array with
the desired alignnment.
[...]
Umm, the ```align array``` solution is flat out wrong, please
ignore it. Most likely a bug in the compiler.
Also, why will the address of the first element of the array
```modulo``` alignment be 0? The address of the array has
absolutely nothing to do with the alignment.
You say that the ```align array``` solution has the expected
spacing, but it is default aligned, totally ignoring your 64
byte requirement.
Don't use ```x.PTR%ALIGNMENT```
Use ```(&x[1]-&[2])%ALIGNMENT```
You will get ALIGNMENT*(2 -1)(since you took difference of 2nd
and 1st elem)