3

structC++ 標準では、組み込み型とまたは型が区別されclassます。後者の場合、適切な演算子が言語によって提供されている場合、 +*=、またはなどの演算子をオーバーロードでき&ますが、組み込み型の場合は許可されません。私の知る限り、SSE/AVX タイプは標準で言及されていないため (ただし、私を修正してください)、これらの演算子を宣言できるはずです。GCC では許可されていませんが、ICC では許可されています。どちらが正しいですか?

本当にビット単位の操作 ( など&=) が必要ですが、厄介なことに、GCC はそれらを提供しておらず ( for __m128)、宣言することもできません。

4

2 に答える 2

8

すべて正しいです。これらの型は C++ の拡張機能であり、組み込みではありません (C++ に組み込まれているものはほとんどアンダースコアで始まりません)。それらは拡張であるため、実装は自由に制限を課すことができます。

于 2012-11-01T11:57:04.360 に答える
6

組み込みではありません。C ++は、特定のHWアーキテクチャ機能に依存していません。

于 2012-11-01T11:52:25.400 に答える