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;