我正在使用Qt5编写程序,我需要分配一个QVector <float>
,其data()
指针是32字节对齐的。
无论如何我可以在不修改Qt库的情况下做到这一点吗?
我的代码看起来像这样:
QVector <float> vec;
vec.resize(n);
float *wricker_ptr = wricker.data(); // this should be 32-byte aligned
for (int i=0; i<n; i++)
{
wricker_ptr[i] = /* some computed value */;
}
我正在使用英特尔的C ++编译器。
答案 0 :(得分:4)
我想到了两个解决方案:
std::vector
和合适的分配器。 QVector
的数据有效负载分配有alignof(T)
。¹QVector<__m256i>
或类似的reinterpret_cast
进出。¹不完全正确,请参阅http://thread.gmane.org/gmane.comp.lib.qt.devel/22326/focus=22596