Я пишу программный растеризатор с использованием MSVC ++ Express 2010 для Windows.Я использую SSE и мне нужно выровнять структуры данных.У меня есть несколько отдельных векторных структур для различных основных типов данных (float, int и т. Д.), Которые я хочу свернуть в одну шаблонную структуру для удобства.Тег _declspec (align (16)), который хорошо послужил для выравнивания структур, не работает для шаблонов.Какие у меня варианты?Вот чего я хотел бы достичь:
/* _declspec(align(16)) */
template< typename T > struct baseVector
{
T v[ 4 ];
};
typedef baseVector< float > vector, vertex, point; // etc
Я пытался специализировать шаблон и использовать _declspec (align ()), но компилятор жалуется.Я также пытался использовать #pragma pack (), но я не думаю, что это имеет какой-либо эффект выравнивания, когда эти структуры являются членами структур более высокого уровня.