// STLport configuration file for Digital Mars C++ #define _STLP_COMPILER __DMC_VERSION_STRING__ #if (__DMC__ < 0x849) # error "Digital Mars C++ compilers before version 8.49 are not supported!" #endif /* DMC goes too far in template instanciation and tries to fully instanciate * slist > for instance. The generation of assignment * operator fails of course so we are force to use mutable key for this compiler. */ #define _STLP_NO_CONST_IN_PAIR #define _STLP_DONT_SUP_DFLT_PARAM #ifndef _CPPUNWIND # define _STLP_NO_EXCEPTIONS #endif #ifndef _CPPRTTI # define _STLP_NO_RTTI #endif #define _STLP_VENDOR_GLOBAL_CSTD //DMC prefer enum to real static const variable because it do not consider //static const as const enough to be used in switch declaration... #define _STLP_STATIC_CONST_INIT_BUG #if !defined (_WIN32) // it's not fully supported on non-Win32 platforms # define _STLP_NO_NATIVE_WIDE_FUNCTIONS #endif /* _STLP_NO_OWN_NAMESPACE is defined because Digital Mars' linker and libarian appear to have problems with STLport namespaces. Summary of the issues: STATIC: Digital Mars' librarian (lib.exe) may fail with "len <= IDMAX" error if _STLP_DEBUG is defined. This is because Digital Mars' librarian uses Microsoft OMF format, which limits identifier length to about 512 bytes. With STLport namespaces, some identifiers such as Category_Map in src/locale_catalog.cpp may exceed the maximum OMF identifier length. DYNAMIC: Export issues with cin, cout, cerr, clog in src/iostream.cpp. Exports in Digital Mars 'def' file must match mangled names in iostream.cpp. With STLport namespaces, the mangled names in the intermediate files no longer match these pre-defined exports. To use STLport dynamic libraries and STLport namespaces with Digital Mars, the pre-defined exports in src/iostream.cpp and the related Digital Mars 'def' files would need to be revised. */ #define _STLP_NO_OWN_NAMESPACE 1 // select threads strategy #if defined (_MT) && !defined (_STLP_NO_THREADS) # define _STLP_THREADS #endif #ifndef _BOOL_DEFINED # define _STLP_NO_BOOL #else # define _STLP_DONT_USE_BOOL_TYPEDEF #endif #if _INTEGRAL_MAX_BITS >= 64 # define _STLP_LONG_LONG long long #endif #define _STLP_MARK_PARAMETER_AS_UNUSED(X) #define _STLP_DONT_USE_PRIV_NAMESPACE #define _STLP_PRIV #define _STLP_THROW_RETURN_BUG #if !defined (_DLL) # undef _STLP_NO_UNEXPECTED_EXCEPT_SUPPORT #endif #if (__DMC__ < 0x849) # define _STLP_NO_BAD_ALLOC #endif #define _STLP_USE_ABBREVS #define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER #define _STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND #define _STLP_EXPORT_DECLSPEC __declspec(dllexport) #define _STLP_IMPORT_DECLSPEC __declspec(dllimport) #define _STLP_CLASS_EXPORT_DECLSPEC __declspec(dllexport) #define _STLP_CLASS_IMPORT_DECLSPEC __declspec(dllimport) #define _STLP_NEED_ADDITIONAL_STATIC_DECLSPEC //#define _STLP_IMPORT_TEMPLATE_KEYWORD __declspec(dllimport) //#define _STLP_EXPORT_TEMPLATE_KEYWORD __declspec(dllexport) #if defined (_WINDLL) # define _STLP_DLL #endif #if defined (_DLL) # define _STLP_RUNTIME_DLL #endif #include #undef _STLP_RUNTIME_DLL #undef _STLP_DLL #if defined (_STLP_USE_DYNAMIC_LIB) # define _STLP_USE_DECLSPEC 1 # if defined (__BUILDING_STLPORT) # define _STLP_CALL __export # else # define _STLP_CALL # endif #else # define _STLP_CALL #endif #include #undef __SC__ #include