Previous Next Contents Index


Copyright 1999 Rogue Wave Software
Copyright 1999 Sun Microsystems, Inc.

Typedef とマクロ

B


Constans :

#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)

Typedefs :

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++ の公開マクロ

次のマクロは、プログラマによって Tools.h++ の API の一部として使用されるように定義されています。

ファイル collect.h の場合
// マクロ本体は削除されます。
// 『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)
ファイル defs.h の場合
// 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 )
ファイル edefs.h の場合
// マクロ本体は削除されます。持続性に関する節を参照してください。

#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)
ファイル epersist.h の場合
// マクロ本体は削除されます。持続性に関する節を参照してください。
#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)
ファイル strmshft.h の場合
// 便利なマクロ。
#define RW_PROVIDE_DVSTREAM_INSERTER(DerivedOstream,vstreamable)
#define RW_PROVIDE_DVSTREAM_EXTRACTOR(DerivedIstream,vstreamable)
ファイル tphasht.htvhasht.htphdict.htvhdict.htphmmap.htvhmmap.htphset.htvhset.h の場合
// 「現在」と「ANSI 準拠」の各コンパイラの間で移植可能なコードを
// 作成する場合に便利です。
// テンプレートを参照してください。
#define RWDefHArgs(T) ,RWTHasher<T>,equal_to<T>
ファイル tpsrtvec.htvsrtvec.h の場合
// 「現在」と「ANSI 準拠」の各コンパイラの間で移植可能なコードを
// 作成する場合に便利です。
// See templates.
#define RWDefCArgs(T) ,less<T>
標準 Smalltalk 式インタフェース
(RW_STD_TYPEDEFS を定義することによって有効化)
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;




Previous Next Contents Index