インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
Ivec クラスで演算子を使用するときは、次の構文規則のいずれかに従う必要があります。
[ Ivec_Class ] R = [ Ivec_Class ] A [ operator ][ Ivec_Class ] B
例 1: I64vec1 R = I64vec1 A & I64vec1 B;
[ Ivec_Class ] R =[ operator ] ([ Ivec_Class ] A,[ Ivec_Class ] B)
例 2: I64vec1 R = andnot(I64vec1 A, I64vec1 B);
[ Ivec_Class ] R [ operator ]= [ Ivec_Class ] A
例 3: I64vec1 R &= I64vec1 A;
[ operator ] は演算子 (例えば、&、|、^)
[ Ivec_Class ] は Ivec クラス
R、A、B は、該当する Ivec クラスを使用して宣言された変数
次の表は、符号とサイズを対象とした自動的型キャストと明示的型キャストを列挙したものです。"明示的" は、異なるデータ型をいくつか混在させるときは必ず型キャストを明示的に指定しなければならないという意味です。"自動的" は、複数のデータ型を混在させたときにコンパイラーが自動的に型キャストを行うという意味です。
主要演算子の規則一覧
演算子 |
符号の型キャスト |
サイズの型キャスト |
型キャストに関するその他の要件 |
---|---|---|---|
代入 |
- |
- |
- |
論理 |
自動的 |
自動的 |
代入演算子の右辺に論理式以外の式が使用されていて、かつその中に、異なるデータ型が混在している場合は、明示的な型キャストが必要です。 |
加算と減算 |
自動的 |
明示的 |
- |
乗算 |
自動的 |
明示的 |
- |
シフト |
自動的 |
明示的 |
算術演算シフトを確実に行うには型キャストが必要です。 |
比較 |
自動的 |
明示的 |
「<」または「>」の比較を行う場合は、符号付きクラスについては明示的な型キャストが必要です。 |
条件付き選択 |
自動的 |
明示的 |
「<」または「>」の比較を行う場合は、符号付きクラスについては明示的な型キャストが必要です。 |
次の表は、すべてのクラスサイズについて、コンストラクターの宣言とデータ型の初期化の例を列挙したものです。どの値についても、最上位要素が左側、最下位要素が右側で初期化されます。
Ivec クラスのデータ型の宣言と初期化
演算 |
クラス |
構文 |
---|---|---|
宣言 |
M128 |
I128vec1 A; Iu8vec16 A; |
宣言 |
M64 |
I64vec1 A; Iu8vec8 A; |
__m128 の初期化 |
M128 |
I128vec1 A(__m128 m); Iu16vec8(__m128 m); |
__m64 の初期化 |
M64 |
I64vec1 A(__m64 m);Iu8vec8 A(__m64 m); |
__int64 の初期化 |
M64 |
I64vec1 A = __int64 m; Iu8vec8 A =__int64 m; |
int i の初期化 |
M64 |
I64vec1 A = int i; Iu8vec8 A = int i; |
int の初期化 |
I32vec2 |
I32vec2 A(int A1, int A0); |
int の初期化 |
I32vec4 |
I32vec4 A(int A3, int A2, int A1, int A0); |
short int の初期化 |
I16vec4 |
I16vec4 A(short A3, short A2, short A1, short A0); |
short int の初期化 |
I16vec8 |
I16vec8 A(short A7, short A6, ..., short A1, short A0); |
char の初期化 |
I8vec8 |
I8vec8 A(char A7, char A6, ..., char A1, char A0); |
char の初期化 |
I8vec16 |
I8vec16 A(char A15, ..., char A0); |