【发布时间】:2012-03-16 16:17:16
【问题描述】:
我正在使用 MSVC++ Express 2010 for 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(),但是当这些结构是更高级别结构的成员时,我认为这没有任何对齐效果。
【问题讨论】:
标签: c++ templates vector alignment sse