std :: unordered_mapの値として__m128(SSEベクトル)を使用する際のバグを追跡しました。これにより、mingw32 g++4.7.2でランタイムセグメンテーション違反が発生します。
以下の例をご覧ください。これが失敗する理由はありますか?または、回避策があるでしょうか?(値をクラスでラップしようとしましたが、役に立ちませんでした。)ありがとう。
#include <unordered_map>
#include <xmmintrin.h> // __m128
#include <iostream>
int main()
{
std::unordered_map<int,__m128> m;
std::cerr << "still ok\n";
m[0] = __m128();
std::cerr << "crash in previous statement\n";
return 0;
}
コンパイル設定:g ++ -march = native -std = c ++ 11