我正在尝试将 SSE 类型存储在 stl 容器中。我试过这个:
#include <iostream>
#include <vector>
int main()
{
typedef int v4sf __attribute__ (( vector_size(4*sizeof(float)) ));
v4sf a; // compiles
std::vector<v4sf> v1; // compiles, but nothing is actually allocated
// std::vector<v4sf> v2(10); // compiler error: can’t convert between vector values of different size
std::vector<v4sf> v(10, a); // Compiles, but segfaults
return 0;
}
但如前所述,在不提供要复制的对象的情况下进行分配会产生编译器错误,而在提供对象的情况下进行分配会编译但会出现段错误。谁能解释为什么我不能将这些 SSE 对象存储在这样的 STL 容器中(或者更好的是,提供正确的方法)?