lam*_*rna 2 c++ templates sse vector alignment
我正在使用MSVC++ Express 2010 for windows编写软件rasteriser.我正在使用SSE并需要对齐的数据结构.我为不同的基本数据类型(float,int等)提供了许多单独的向量结构,为了方便起见,我想将其转换为一个模板化结构.已经很好地用于对齐结构的_declspec(align(16))标记似乎不适用于模板.我有什么选择?这就是我想要实现的目标:
/* _declspec(align(16)) */
template< typename T > struct baseVector
{
T v[ 4 ];
};
typedef baseVector< float > vector, vertex, point; // etc
Run Code Online (Sandbox Code Playgroud)
我尝试过专门化模板并使用_declspec(align()),但编译器抱怨.我也试过使用#pragma pack(),但是当这些结构是更高级别结构的成员时,我认为没有任何对齐效果.
该declspec是放错了地方.它应该在之后struct.
template<typename T>
struct _declspec(align(16)) baseVector
{
T v[4];
};
Run Code Online (Sandbox Code Playgroud)