1.2 IDLデータ型

IDLデータ型はoperation定義の引数およびリターン値,struct定義のメンバ,union定義のメンバ,array型の要素,sequence型の要素,ならびにexception定義のメンバに使用できます。

array型およびsequence型は,必ずtypedefしてください。

IDLデータ型を使用できるかどうかを次の表に示します。

表1-4 IDLデータ型の使用の可否

データ型使用の可否(C++およびJava)
Primitive1
struct
sequence○(最大長指定は使用できません)
array
union2
enum
interface×(データ型として使用できません)
any○(Primitive型またはsequence<octet>型だけ使用できます)
typedef○(array型またはsequence型だけ使用できます)
Object Reference×
fixed×
(凡例)
○:使用できます。
×:使用できません。
注※1
詳細については,表1-5を参照してください。
注※2
union型のcaseラベルには,次に示すデータ型または値を使用できません。
  • long long型
  • unsigned short型で32767を超える値
  • char型で非表示文字(ASCIIコードで31以下および127以上)の値

表1-5 Primitive型データの使用の可否

データ型使用の可否(C++)使用の可否(Java)
short
long
unsigned short○(shortと同様に扱われます)
unsigned long○(longと同様に扱われます)
float
double
char
boolean
octet
string
long long
unsigned long long○(long longと同様に扱われます)
long double×
wchar
wstring○(最大長指定は使用できません)
(凡例)
○:使用できます。
×:使用できません。
注※
wchar型およびwstring型を使用しても文字コードは変換されません。異なる言語やプラットフォーム間ではwchar型およびwstring型は使用しないでください。