13.1.16 Typedef
OMG IDLのtypedefは、C++のtypedefにマッピングされます。OMG IDLのデータ型によっては、追加のtypedefおよびメンバー関数が定義される場合もあります。各データ型に対して生成されるコードは次のとおりです。
- 基本データ型(short、long、unsigned short、unsigned long、float、double、char、boolean、およびoctet)
基本データ型は単純なtypedefにマッピングされます。例:
// OMG IDL typedef long ID; // C++ typedef CORBA::Long ID; - string
文字列のtypedefは単純なtypedefにマッピングされます。例:
// OMG IDL typedef string IDStr; // C++ typedef char * IDStr; - オブジェクト、インタフェース、TypeCode
オブジェクト、インタフェース、およびTypeCode型は、4つのtypedefにマッピングされます。例:
// OMG IDL typedef Item Intf; // C++ typedef Item Intf; typedef Item_ptr Intf_ptr; typedef Item_var Intf_var; typedef Item_ptr &Intf _out; - enum、構造体、ユニオン、シーケンス
UDTは3つのtypedefにマッピングされます。例:
// OMG IDL typedef LogList ListRetType; // C++ typedef LogList ListRetType; typedef LogList_var ListRetType_var; typedef LogList_out &ListRetType_out; - array
配列は、メモリーを割り当ておよび解放するために4つのtypedefと静的メンバー関数にマッピングされます。例:
// OMG IDL typedef LogArray ArrayRetType; // C++ typedef LogArray ArrayRetType; typedef LogArray_var ArrayRetType_var; typedef LogArray_forany ArrayRetType_forany; typedef LogArray_slice ArrayRetType_slice; ArrayRetType_slice * ArrayRetType_alloc(); void ArrayRetType_free(ArrayRetType_slice *);
親トピック: マッピング