演算子は、
特定の型の値に対して定義されなければなりません。
例えば、
+
は数値に対しては定義されていますが、
構造体に対しては定義されていません。
演算子は、
型のグループに対して定義されることがよくあります。
C/C++に対しては、以下の定義が有効です。
int
が含まれます。
char
、
enum
も整数型です。
float
とdouble
が含まれます。
(
type *)
により定義されるすべての型が含まれます。
以下の演算子がサポートされています。 これらは優先順位の低いものから順に並べられています。
,
=
=
op=
bという形式の式において使用され、
a =
a op bに変換されます。
op=
と=
は、
同一の優先順位を持ちます。
opには、
|
、
^
、
&
、
<<
、
>>
、
+
、
-
、
*
、
/
、
%
の各演算子が使用できます。
?:
?
b :
cは、
aが真であればb、
偽であればcとみなすことができます。
aは整数型でなければなりません。
||
&&
|
^
&
==
、!=
<
、>
、<=
、>=
<<
、>>
@
+
、-
*
、/
、%
++
, --
*
++
と同一の優先度を持ちます。
&
++
と同一の優先順位を持ちます。
C++のデバッグでは、
C++言語そのものにおいては許されていないような‘&’の使用法を、
GDBは実装しています。
C++の
(‘&ref’により宣言される)
参照変数が格納されているアドレスを調べるのに、
‘&(&ref)’
(あるいは、
もしそうしたいのであれば単に‘&&ref’)
を使用することができます。
-
++
と同一の優先順位を持ちます。
!
++
と同一の優先順位を持ちます。
~
++
と同一の優先順位を持ちます。
.
, ->
struct
)
および共用体
(union
)
に対して定義されています。
[]
[
i]
は、
*(
a+
i)
として定義されています。
->
と同一の優先順位を持ちます。
()
->
と同一の優先順位を持ちます。
::
struct
)、
共用体(union
)、
クラス(class
)に対して定義されています。
::
::
と同一の優先順位を持ちます。