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;
}
ただし、前述のように、コピーするオブジェクトを指定せずに割り当てるとコンパイラ エラーが発生し、オブジェクトを指定して割り当てるとコンパイルは行われますが、segfault が発生します。これらの SSE オブジェクトをこのような STL コンテナーに格納できない理由を誰かが説明できますか (または、正しい方法を提供してください)。