IDL内の型定義がC++型定義にダイレクトにマッピングされています。元のIDL型定義が複数のC++型にマッピングされる場合,IDLコンパイラは,それぞれの型に対応するC++のエイリアスを生成します。例をコードサンプル20-13~20-14に示します。
// IDL
typedef octet example_octet;
typedef enum enum_values {
first,
second,
third
} enum_example;
// C++
typedef octet example_octet;
enum enum_values {
first,
second,
third
};
typedef enum_values enum_example;
その他の型定義のマッピング例を,コードサンプル20-15~20-18に示します。
// IDL
interface A1;
typedef A1 A2;
// C++
class A1;
typedef A1 *A1_ptr;
typedef A1_ptr A1Ref;
class A1_var;
typedef A1 A2;
typedef A1_ptr A2_ptr;
typedef A1Ref A2Ref;
typedef A1_var A2_var;
// IDL
typedef sequence<long> S1;
typedef S1 S2;
// C++
class S1;
typedef S1 *S1_ptr;
typedef S1_ptr S1Ref;
class S1_var;
typedef S1 S2;
typedef S1_ptr S2_ptr;
typedef S1Ref S2Ref;
typedef S1_var S2_var;