20.5 型定義

IDL内の型定義がC++型定義にダイレクトにマッピングされています。元のIDL型定義が複数のC++型にマッピングされる場合,IDLコンパイラは,それぞれの型に対応するC++のエイリアスを生成します。例をコードサンプル20-13~20-14に示します。

コードサンプル20-13 IDLの型定義

// IDL
typedef octet example_octet;
typedef enum enum_values {
   first,
   second,
   third
} enum_example;

コードサンプル20-14 IDLの型定義のC++へのマッピング

// C++
typedef octet example_octet;
enum enum_values {
   first,
   second,
   third
};
typedef enum_values enum_example;

その他の型定義のマッピング例を,コードサンプル20-15~20-18に示します。

コードサンプル20-15 インタフェースのIDL typedef

// IDL
interface A1;
typedef A1 A2;

コードサンプル20-16 IDLインタフェース型定義のC++へのマッピング

// 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;

コードサンプル20-17 シーケンスのIDL typedef

// IDL
typedef sequence<long> S1;
typedef S1 S2;

コードサンプル20-18 IDLシーケンス型定義のC++へのマッピング

// 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;