00001 // todo: ??? is __GNUC__ the right flag 00002 // todo: what about __GNUG__ (used in /usr/include/g++/std) 00003 // todo: ??? how to define specializations (see #define FullSpecialization) 00004 00005 #ifndef _CTB_HXX 00006 #define _CTB_HXX 1 00007 00014 /*----------------------------------------------------------------------------*/ 00015 /* C Tool Box: Designed and implemented by: */ 00016 /* Walter F.J. Mueller Gesellschaft fuer Schwerionenforschung (GSI) */ 00017 /* Postfach 110552, D-64220 Darmstadt, Germany */ 00018 /* Email: W.F.J.Mueller@gsi.de */ 00019 /* WWW: http://www-kp3.gsi.de/www/kp3/people/mueller.html */ 00020 /*------------------------------------------+---------------------------------*/ 00021 // 00022 // Master header file. MUST be included if any other CTB*.hxx is used 00023 // 00024 // 00025 // CTB__IndexCheck --> subscript range checking 00026 // CTB__OutLine --> no inline code 00027 // CTB__TraceLog --> call trace: enable logging 00028 // CTB__TraceCount --> call trace: enable counting 00029 // 00030 // CTB__HideSpecializations --> defined in explicit instantiation stubs 00031 // 00032 // CTB__NoBool --> bool type NOT supported 00033 // CTB__NoExplicit --> explicit keyword NOT supported 00034 // 00035 // CTB_TemplateFullSpecialization 00036 // 00037 // Now include some standart library headers 00038 // 00039 #include <iostream.h> 00040 #include <iomanip.h> 00041 // 00042 // Now setup CTB__NoBool and CTB__NoExplicit depending on system and compiler 00043 // type and revision: 00044 // 00045 // a. DEC cxx V5.5 does not support namespace, typename, explicit and bool 00046 // 00047 00048 #define CTB__GenericCode 00049 00050 #if defined(__GNUC__) 00051 #endif 00052 00053 #if defined(CTB__NoBool) 00054 typedef int bool; 00055 #define true 1 00056 #define false 0 00057 #endif 00058 00059 #if defined(CTB__NoExplicit) 00060 #define explicit 00061 #endif 00062 00063 #if defined(__GNUC__) 00064 #define CTB_TemplateFullSpecialization 00065 #else 00066 #define CTB_TemplateFullSpecialization template <class T> 00067 #endif 00068 00069 #include "CTBtypes.hxx" 00070 #include "CTButil.hxx" 00071 00072 #if defined(CTB__null) 00073 #define null 0 00074 #endif 00075 00076 #endif