превосходит 8, то реализация не соответствует.

а кода стоит тысячи слов :) Вот моя проблема:

/* Platform specific 16-byte alignment macro switch.
   On Visual C++ it would substitute __declspec(align(16)).
   On GCC it substitutes __attribute__((aligned (16))).
*/
#define ALIGN_16 ...

struct ALIGN_16 A {...};

A* ptr = new A;
A* ptr2 = new A[20];

assert(size_t(ptr) % 16 == 0);

for (int i=0; i<20; ++i)
    assert(size_t(ptr2+i) % 16 == 0);

assert(sizeof(A) % 16 == 0);

Можно ли ожидать, что все утверждения пройдут на платформах с поддержкой SSE? Спасибо.

РЕДАКТИРОВАТЬ. Частичный ответ. Я провел некоторые тесты с VS2008, GCC и ICC. Компилятор MS выровнял обаPTR а такжеptr2, но GCC и ICC не удалось выровнятьptr2.

Ответы на вопрос(2)

Ваш ответ на вопрос