/// \defgroup rbd_common RBD common library ///@{ /// \file include.h /// Set options and and details of include files. #ifndef INCLUDE_LIB #define INCLUDE_LIB //#define use_namespace // define name spaces #define SETUP_C_SUBSCRIPTS // allow element access via A[i][j] //#define OPT_COMPATIBLE // for use with opt++ // Activate just one of the following 3 statements //#define SimulateExceptions // use simulated exceptions #define UseExceptions // use C++ exceptions //#define DisableExceptions // do not use exceptions //#define TEMPS_DESTROYED_QUICKLY // for compilers that delete // temporaries too quickly //#define TEMPS_DESTROYED_QUICKLY_R // the same thing but applied // to return from functions only //#define DO_FREE_CHECK // check news and deletes balance #define USING_DOUBLE // elements of type double //#define USING_FLOAT // elements of type float #define bool_LIB 0 // for compatibility with my older libraries //#define ios_format_flags ios::fmtflags // for Gnu 3 and Intel for Linux //#define _STANDARD_ // using standard library //#define use_float_h // use float.h for precision data //#define HAS_INT64 // if unsigned _int64 is recognised // used by newran03 // comment out next line if Exception causes a problem #define TypeDefException //*********************** end of options set by user ******************** // for Gnu C++ version 3 #if defined __GNUG__ && __GNUG__ >= 3 #define _STANDARD_ // use standard library #define ios_format_flags ios::fmtflags #endif // for Intel C++ for Linux #if defined __ICC #define _STANDARD_ // use standard library #define ios_format_flags ios::fmtflags #endif // for Microsoft Visual C++ 7 and above (and Intel simulating these) #if defined _MSC_VER && _MSC_VER >= 1300 #define _STANDARD_ // use standard library #endif #ifdef _STANDARD_ // using standard library #include #if defined _MSC_VER && _MSC_VER == 1200 #include // for VC++6 #endif #ifdef WANT_STREAM #include #include #endif #ifdef WANT_MATH #include #endif #ifdef WANT_STRING #include #endif #ifdef WANT_TIME #include #endif #ifdef WANT_FSTREAM #include #endif ////using namespace std; #define USE_STD_NAMESPACE #else #define DEFAULT_HEADER // use AT&T style header // if no other compiler is recognised #ifdef _MSC_VER // Microsoft #include // reactivate these statements to run under MSC version 7.0 // typedef int jmp_buf[9]; // extern "C" // { // int __cdecl setjmp(jmp_buf); // void __cdecl longjmp(jmp_buf, int); // } #ifdef WANT_STREAM #include #include #endif #ifdef WANT_MATH #include #include #endif #ifdef WANT_STRING #include #endif #ifdef WANT_TIME #include #endif #ifdef WANT_FSTREAM #include #endif #undef DEFAULT_HEADER #endif #ifdef __ZTC__ // Zortech #include #ifdef WANT_STREAM #include #include #define flush "" // not defined in iomanip? #endif #ifdef WANT_MATH #include #include #endif #ifdef WANT_STRING #include #endif #ifdef WANT_TIME #include #endif #ifdef WANT_FSTREAM #include #endif #undef DEFAULT_HEADER #endif #if defined __BCPLUSPLUS__ || defined __TURBOC__ // Borland or Turbo #include #ifdef WANT_STREAM #include #include #endif #ifdef WANT_MATH #include #include // Borland has both float and values // but values.h returns +INF for // MAXDOUBLE in BC5 #endif #ifdef WANT_STRING #include #endif #ifdef WANT_TIME #include #endif #ifdef WANT_FSTREAM #include #endif #undef DEFAULT_HEADER #endif #ifdef __GNUG__ // Gnu C++ #include #ifdef WANT_STREAM #include #include #endif #ifdef WANT_MATH #include #include #endif #ifdef WANT_STRING #include #endif #ifdef WANT_TIME #include #endif #ifdef WANT_FSTREAM #include #endif #undef DEFAULT_HEADER #endif #ifdef __WATCOMC__ // Watcom C/C++ #include #ifdef WANT_STREAM #include #include #endif #ifdef WANT_MATH #include #include #endif #ifdef WANT_STRING #include #endif #ifdef WANT_TIME #include #endif #ifdef WANT_FSTREAM #include #endif #undef DEFAULT_HEADER #endif #ifdef macintosh // MPW C++ on the Mac #include #ifdef WANT_STREAM #include #include #endif #ifdef WANT_MATH #include #include #endif #ifdef WANT_STRING #include #endif #ifdef WANT_TIME #include #endif #ifdef WANT_FSTREAM #include #endif #undef DEFAULT_HEADER #endif #ifdef use_float_h // use float.h for precision values #include #ifdef WANT_STREAM #include #include #endif #ifdef WANT_MATH #include #include #endif #ifdef WANT_STRING #include #endif #ifdef WANT_TIME #include #endif #ifdef WANT_FSTREAM #include #endif #undef DEFAULT_HEADER #endif #ifdef DEFAULT_HEADER // for example AT&T #define ATandT #include #ifdef WANT_STREAM #include #include #endif #ifdef WANT_MATH #include #define SystemV // use System V #include #endif #ifdef WANT_STRING #include #endif #ifdef WANT_TIME #include #endif #ifdef WANT_FSTREAM #include #endif #endif // DEFAULT_HEADER #endif // _STANDARD_ #ifdef use_namespace namespace RBD_COMMON { #endif #ifdef USING_FLOAT // set precision type to float typedef float Real; typedef double long_Real; #endif #ifdef USING_DOUBLE // set precision type to double typedef double Real; typedef long double long_Real; #endif // This is for (very old) compilers that do not have bool automatically defined #ifndef bool_LIB #define bool_LIB 0 class bool { int value; public: bool(const int b) { value = b ? 1 : 0; } bool(const void* b) { value = b ? 1 : 0; } bool() {} operator int() const { return value; } int operator!() const { return !value; } }; const bool true = 1; const bool false = 0; #endif #ifdef use_namespace } #endif #ifdef use_namespace namespace RBD_COMMON {} namespace RBD_LIBRARIES // access all my libraries { using namespace RBD_COMMON; } #endif #endif ///@}