Как выровнять член структуры в D?

Я пробовал это

struct Foo(T)
{
    align(8) void[T.sizeof] data;
}

, но

static assert(Foo!(int).data.alignof == 8);

терпит неудачу, говоря мне, что выравнивание все еще 1вместо 8.

Почему это так и как это исправить, чтобы оно работало для любого произвольного выравнивания, являющегося степенью 2 (а не только 8)?

5
задан Peter Alexander 19 May 2012 в 11:50
поделиться