新しい Intel の Sandy Bridge プロセッサで AVX 命令をいじり始めました。MinGW64のGCC 4.5.2、TDM-GCC 64ビットビルドを使用しています。
ostream が vector typesなどをコンソール__m256
に出力できるように、operator<< をオーバーロードしたいと考えています。__m128
しかし、私は過負荷の競合に遭遇しています。次のコードの 2 番目の関数は、「以前の宣言と競合しています」というエラーを生成しますvoid f(__vector(8) float)
。
void f(__m128 v) {
cout << 4;
}
void f(__m256 v) {
cout << 8;
}
コンパイラは 2 つのタイプを区別できず、両方を考慮しているようf(float __vector)
です。
これを回避する方法はありますか?私はオンラインで何も見つけることができませんでした。どんな助けでも大歓迎です。