Copyright 1999 Rogue Wave Software
Copyright 1999 Sun Microsystems, Inc.
Typedef とマクロ |
B |
#define FALSE 0 // RWBoolean 値 (defs.h) #define TRUE 1 // RWBoolean 値 (defs.h) #define rwnil 0 // NULL ポインタ (defs.h) #define RWTOOLS 0x700 // (実際の現行バージョン番号) // (tooldefs.h) const RWoffset RWNIL = -1L; // RWFile に「オフセットなし」 // (defs.h) const size_t RW_NPOSRW_NPOS = ~(size_t)0; // 配列へのインデックスとして「検出されず」 // (defs.h)
typedef unsigned short RWClassID; // (defs.h) 各クラスに固有 // typedef int RWBoolean; // (defs.h) TRUE または FALSE typedef unsigned char RWByte; // (defs.h) Bitflag 不可分 typedef RWCollectable* RWCollectableP // (tooldefs.h) トークン化に必要 // typedef unsigned short RWErrNo // (defs.h) エラーハンドラで使用 // typedef long RWoffset; // (tooldefs.h) ファイルオフセットに使用 // typedef unsigned long RWspace; // (tooldefs.h) ファイルレコードに使用 // typedef long RWstoredValue; // (tooldefs.h) ファイルオフセットに使用 // typedef void* RWvoidRWvoid; // (tooldefs.h) void* の配列に使用 //
typedef void (*RWapplyCollectable) (RWCollectable*, void*); typedef void (*RWapplyGeneric) (void*, void*); typedef void (*RWapplyKeyAndValue) (RWCollectable*, RWCollectable*, void*); typedef void (*RWauditFunction) (unsigned char, void*); typedef void (*RWdiskTreeApply) (const char*, RWstoredValue, void*); typedef int (*RWdiskTreeCompare) (const char*, const char*, size_t); typedef RWBoolean (*RWtestGeneric) (const void*, const void*); typedef RWBoolean (*RWtestCollectable) (const RWCollectable*, const void*); typedef RWBoolean (*RWtestCollectablePair) (const RWCollectable*, constRWCollectable*,void*); typedef RWCollectable* (*RWuserCreator) ();
enum RWSeverity {RWWARNING, RWDEFAULT, RWFATAL}
次は、関与するクラスのメンバー関数やコンストラクタの動作を変更します。ボールド書体で示した値はデフォルト値です。
RWCString::enum stripType {leading,trailing,both} // 文字を取り除く場所 RWCString::enum caseCompare {exact, ignoreCase} // 比較中に大文字小文字 // を区別しない RWCString::enum scopeType {one, all} // 置換する // 部分文字列の数 RWBTreeOnDisk::enum styleMode {V6Style, V5Style} // ファイル形式 RWBTreeOnDisk::enum createMode {autoCreate, create} // ファイル内の b ツリーを // (再利用,新規作成) RWeostream::enum Endian { LittleEndian, BigEndian, HostEndian } // コンストラクタ引数 RWLocale::enum CurrSymbol { NONE, LOCAL, INTL } // 「asString」メソッド // で使用される RWWString::enum stripType {leading,trailing,both} // 文字を取り除く場所 RWWString::enum caseCompare {exact, ignoreCase} // 比較中に大文字小文字 // を区別しない RWWString::enum scopeType {one, all} // 置換する // 部分文字列の数
// マクロ本体は削除されます。 // 『Tools.h++ 7.0 クラスライブラリ・リファレンスマニュアル』と本書の // RWCollectable を参照してください。 #define RWDECLARE_ABSTRACT_COLLECTABLE(className) #define RWDEFINE_ABSTRACT_COLLECTABLE(className) #define RWDECLARE_COLLECTABLE(className) #define RWDEFINE_COLLECTABLE(className,id) #define RWDEFINE_NAMED_COLLECTABLE(className,str)
// RWDEBUG が定義されている場合、次のように定義されます。そうでない場合は何も // 定義されません。 #define RWPOSTCONDITION(a) assert( (a) != 0 ) #define RWPRECONDITION2(a,b) assert( (a) != 0 ) #define RWPOSTCONDITION2(a,b) assert( (a) != 0 ) #define RWPRECONDITION2(a,b) assert((b, (a) !=0)) #define RWPOSTCONDITION2(a,b) assert((b, (a) !=0)) #define RWASSERT(a) assert( (a) != 0 )
// マクロ本体は削除されます。持続性に関する節を参照してください。 #define RWDECLARE_PERSISTABLE_IO(CLASS,ISTR,OSTR) #define RWDECLARE_PERSISTABLE_TEMPLATE_IO(TEMPLATE, ISTR, OSTR) #define RWDECLARE_PERSISTABLE_TEMPLATE_IO_2(TEMPLATE, ISTR, OSTR) #define RWDECLARE_PERSISTABLE_TEMPLATE_IO_3(TEMPLATE, ISTR, OSTR) #define RWDECLARE_PERSISTABLE_TEMPLATE_IO_4(TEMPLATE, ISTR, OSTR) #define RWDECLARE_PERSISTABLE(CLASS) #define RWDECLARE_PERSISTABLE_TEMPLATE(TEMPLATE) #define RWDECLARE_PERSISTABLE_TEMPLATE_2(TEMPLATE) #define RWDECLARE_PERSISTABLE_TEMPLATE_3(TEMPLATE) #define RWDECLARE_PERSISTABLE_TEMPLATE_4(TEMPLATE)
// マクロ本体は削除されます。持続性に関する節を参照してください。 #define RWDEFINE_PERSISTABLE_IO(CLASS,ISTR,OSTR) #define RWDEFINE_PERSISTABLE_TEMPLATE_IO(TEMPLATE,ISTR,OSTR) #define RWDEFINE_PERSISTABLE_TEMPLATE_IO_2(TEMPLATE,ISTR,OSTR) #define RWDEFINE_PERSISTABLE_TEMPLATE_IO_3(TEMPLATE,ISTR,OSTR) #define RWDEFINE_PERSISTABLE_TEMPLATE_IO_4(TEMPLATE,ISTR,OSTR) #define RWDEFINE_PERSISTABLE(CLASS) #define RWDEFINE_PERSISTABLE_TEMPLATE(TEMPLATE) #define RWDEFINE_PERSISTABLE_TEMPLATE_2(TEMPLATE) #define RWDEFINE_PERSISTABLE_TEMPLATE_3(TEMPLATE) #define RWDEFINE_PERSISTABLE_TEMPLATE_4(TEMPLATE)
// 便利なマクロ。 #define RW_PROVIDE_DVSTREAM_INSERTER(DerivedOstream,vstreamable) #define RW_PROVIDE_DVSTREAM_EXTRACTOR(DerivedIstream,vstreamable)
// 「現在」と「ANSI 準拠」の各コンパイラの間で移植可能なコードを // 作成する場合に便利です。 // テンプレートを参照してください。 #define RWDefHArgs(T) ,RWTHasher<T>,equal_to<T>
// 「現在」と「ANSI 準拠」の各コンパイラの間で移植可能なコードを // 作成する場合に便利です。 // See templates. #define RWDefCArgs(T) ,less<T>
typedef RWBag Bag; typedef RWBagIterator BagIterator; typedef RWBinaryTree SortedCollection; typedef RWBinaryTreeIterator SortedCollectionIterator; typedef RWBitVec BitVec; typedef RWCollectable Object; // すべて非常に一般的なタイプ typedef RWCollectableDate Date; typedef RWCollectableInt Integer; typedef RWCollectableString String; typedef RWCollectableTime Time; typedef RWCollection Collection; typedef RWHashDictionary Dictionary; typedef RWHashDictionaryIterator DictionaryIterator; typedef RWIdentityDictionary IdentityDictionary; typedef RWIdentitySet IdentitySet; typedef RWOrdered OrderedCollection; typedef RWOrderedIterator OrderedCollectionIterator; typedef RWSequenceable SequenceableCollection; typedef RWSet Set; typedef RWSetIterator SetIterator; typedef RWSlistCollectables LinkedList; typedef RWSlistCollectablesIterator LinkedListIterator; typedef RWSlistCollectablesQueue Queue; typedef RWSlistCollectablesStack Stack;