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;