//acc/include/config.h ////gsf/cmn/include/config.h GSP //============================================================================== // Best view with tabsize == 2 //============================================================================== // © Alexander Lenski, 1999 All rights reserved. //============================================================================== // Project: Advanced Collection Containers. (ACC) // Concept: Alexander Lenski // Design: Alexander Lenski // Development: Alexander Lenski & Valeri Kazatchenko. //============================================================================== // Programming languages: C++ // Closely related files: //============================================================================== // Contents: // 1. Revision history // 2. Include files, preprocessor definitions // 3. ACC compilation control macros // 4. STL compilation control macros //============================================================================== //============================================================================== // 1. Revision history //------------------------------------------------------------------------------ // 1. 07-01-99 Alexander Lenski Initial creation: // & Valeri Kazatchenko. - Include files, preprocessor // definitions. // - ACC compilation control macros // - STL compilation control macros // // Note. 'gsf/cmn/include/config.h', 06-01-99, was used as a prototype. // ---- //============================================================================== //============================================================================== // 2. Include files, preprocessor definitions //------------------------------------------------------------------------------ //Revision History: // 1. 07-01-99 Alexander Lenski & Initial creation. //------------------------------------------------------------------------------ // //#ifndef GSP_GSF_CMN_CONFIG_H //Include only once... #ifndef ACC_CONFIG_H //Include only once... #define ACC_CONFIG_H //. //------------------------------------------------------------------------------ #ifdef _MSC_VER # pragma pack( push, 8 ) //Currently, all MS C++ compilers //for Win32 platforms default //to 8 byte alignment. #endif //_MSC_VER // //============================================================================== //============================================================================== // 3. GSP compilation control macros //------------------------------------------------------------------------------ //Revision History: // 1. 06-01-99 Alexander Lenski &... Initial creation. //Abstract: // The CTRFLAG_USE_ACC_NAMESPACE and __ACC are customizable. // If you would like to put the ACC into the 'global' namespace, comment the // #define CTRFLAG_USE_ACC_NAMESPACE // string out. Otherwise specify unique namespace name in the // # define __ACC acc // instead of 'acc' if you do not like "acc". // //Notes: 1. You have to put the ACC into a namespace if you use // native MS STL in _WIN32. // 2. I rely just on the C++ compilers that support namespaces. ?*** //------------------------------------------------------------------------------ // #define CTRFLAG_USE_ACC_NAMESPACE //------------------------------------------------------------------------------ #ifdef CTRFLAG_USE_ACC_NAMESPACE # define __ACC acc # define ACC_NAMESPACE __ACC #endif //CTRFLAG_USE_ACC_NAMESPACE //------------------------------------------------------------------------------ #ifdef __ACC # define ACC_NAMESPACE_BEGIN namespace __ACC \ { # define ACC_NAMESPACE_END } # define ACC_USING_NAMESPACE using namespace __ACC; #else # define ACC_NAMESPACE_BEGIN # define ACC_NAMESPACE_END # define ACC_USING_NAMESPACE #endif //ACC_NAMESPACE // //============================================================================== //============================================================================== // 4. STL compilation control macros //------------------------------------------------------------------------------ //Revision History: // 1. 07-01-99 Alexander Lenski &... Initial creation. //Abstract: // You have to revise this section if you want to change the way of the STL // use. // //Notes: 1. I keep the ACC in consistency with standards as much as I can. // The C++ standard defines the "std" namespace for the STL. // 2. I rely just on the C++ compilers that support namespaces. // //SGI STL v.3.2 user-settable macros that control compilation: // // CTRFLAG_USE_SGI_STL - If defined, the SGI STL will be used instead // of native library. Don't forget to put path // of the SGI STL header files in front of any // other path in the INCLUDE env. // CTRFLAG_USE_HP_STL - If defined and not defined CTRFLAG_USE_SGI_STL, // the HP STL will be used. // Don't forget to put path // of the HP STL header files in front of any // other path in the INCLUDE env. // __STL_NO_NAMESPACES - If defined, don't put the library in // namespace std, even if the compiler supports // namespaces. // __STL_NO_RELOPS_NAMESPACE - If defined, don't put the relational // operator templates (>, <=. >=, !=) in // namespace std::rel_ops, even if the compiler // supports namespaces and partial ordering of // function templates. // __STL_USE_SGI_ALLOCATORS - If defined, then the STL will use older // SGI-style allocators, instead of // standard-conforming allocators, even if the // compiler supports all of the language // features needed for standard-conforming // allocators. // __STL_ASSERTIONS - If defined, then enable runtime checking // through the __stl_assert macro. // _NOTHREADS - If defined, don't use any multithreading // support. // _PTHREADS - If defined, use Posix threads for // multithreading support. // _UITHREADS - If defined, use SCO/Solaris/UI threads for // multithreading support. // __STL_USE_NEW_IOSTREAMS - If defined, then the STL will use new, // standard-conforming iostreams (e.g. the // header). If not defined, the STL // will use old cfront-style iostreams // (e.g. the header). //------------------------------------------------------------------------------ // #define CTRFLAG_USE_SGI_STL //#define CTRFLAG_USE_HP_STL // // ------------------------------------- SGI STL: #if( defined CTRFLAG_USE_SGI_STL ) //# define __STL_NO_NAMESPACES //# define __STL_NO_RELOPS_NAMESPACE //# define __STL_USE_SGI_ALLOCATORS //# define __STL_ASSERTIONS //# define _NOTHREADS //# define _PTHREADS //# define _UITHREADS //# define __STL_USE_NEW_IOSTREAMS //This flag shuld not be used with //SGI STL v 3.2 in _WIN32. The SGI's //streams do not work! // to make usable SGI STL under MSC v4.2: (1100 means v5.0) - - - # if _MSC_VER < 1100 # define __STL_LIMITED_DEFAULT_TEMPLATES # endif // Notes. MB include directly into MSC section of ? // Also needed some (generic) corrections of SGI STL. // See // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # include # if( defined __STL_HAS_NAMESPACES && !defined __STL_NO_NAMESPACES ) # define STD_USING_NAMESPACE using namespace __STD; # define STD_USING_NAMESPACE_RELOPS using namespace __STD_RELOPS; //Use of native IO streams: # define STD_USING_NAMESPACE_IOSTM using namespace std; # else # define STD_USING_NAMESPACE # define STD_USING_NAMESPACE_RELOPS //Use of native IO streams: # define STD_USING_NAMESPACE_IOSTM using namespace std; # endif //defined __STL_HAS_NAMESPACES && !defined __STL_NO_NAMESPACES // ----------------------------------- HP STL: #elif defined( CTRFLAG_USE_HP_STL ) # define __STL_NO_ALLOCATOR_IN_CONTAINER_TEMPLATE // . . . // ----------------------------------- native STL: #else //Use of native STL: # define __STD std # define STD_USING_NAMESPACE using namespace __STD; # define STD_USING_NAMESPACE_RELOPS using namespace __STD; # define STD_USING_NAMESPACE_IOSTM using namespace __STD; namespace __STD {} #endif //CTRFLAG_USE_SGI/HP_STL // //============================================================================== #ifdef _MSC_VER # pragma pack( pop ) //Restore the alignment. #endif //_MSC_VER //============================================================================== #endif //ACC_CONFIG_H //============================================================================== ////EOF gsf/cmn/include/config.h //EOF acc/include/config.h