epoc32/include/stdapis/stlport/config/stl_msvc.h
author William Roberts <williamr@symbian.org>
Tue, 16 Mar 2010 16:12:26 +0000
branchSymbian2
changeset 2 2fe1408b6811
parent 0 061f57f2323e
permissions -rw-r--r--
Final list of Symbian^2 public API header files
     1 // STLport configuration file
     2 // It is internal STLport header - DO NOT include it directly
     3 // Microsoft Visual C++ 4.0, 4.1, 4.2, 5.0, 6.0, 7.0, 7.1, ICL
     4 
     5 
     6 // Common features for VC++ 4.0 and higher
     7 # ifdef _M_IA64
     8 #  define _STLP_NATIVE_HEADER(x) <../crt/##x>
     9 #  define _STLP_NATIVE_C_HEADER(x) <../crt/##x>
    10 #  define _STLP_NATIVE_CPP_C_HEADER(x) <../crt/##x>
    11 #  define _STLP_NATIVE_OLD_STREAMS_HEADER(x) <../crt/##x>
    12 #  define _STLP_NATIVE_CPP_RUNTIME_HEADER(header) <../crt/##header>
    13 #  define _STLP_GLOBAL_NEW_HANDLER
    14 # else
    15 #  define _STLP_NATIVE_HEADER(x) <../include/##x>
    16 #  define _STLP_NATIVE_C_HEADER(x) <../include/##x>
    17 #  define _STLP_NATIVE_CPP_C_HEADER(x) <../include/##x>
    18 #  define _STLP_NATIVE_OLD_STREAMS_HEADER(x) <../include/##x>
    19 #  define _STLP_NATIVE_CPP_RUNTIME_HEADER(header) <../include/##header>
    20 # endif
    21 
    22 # define _STLP_CALL __cdecl
    23 
    24 # ifndef _STLP_LONG_LONG
    25 #  define _STLP_LONG_LONG  __int64
    26 # endif
    27 
    28 # define _STLP_PRAGMA_ONCE
    29 
    30 // these switches depend on compiler flags
    31 # ifndef _CPPUNWIND
    32 #  define _STLP_HAS_NO_EXCEPTIONS 1
    33 # endif
    34 
    35 # define _STLP_VENDOR_UNEXPECTED_STD
    36 
    37 # if defined ( _MT ) && !defined (_STLP_NO_THREADS)  && !defined (_REENTRANT) && !defined(__WINS__)
    38 #   define _REENTRANT 1
    39 # endif
    40 
    41 # if !defined (_NATIVE_WCHAR_T_DEFINED)
    42 # define _STLP_WCHAR_T_IS_USHORT 1
    43 # endif
    44 
    45 # define _STLP_MINIMUM_IMPORT_STD
    46 
    47 # ifdef _STLP_MSVC
    48 
    49 # ifndef _STLP_MSVC50_COMPATIBILITY
    50 #  define _STLP_MSVC50_COMPATIBILITY   1
    51 # endif
    52 
    53 #  define _STLP_DLLEXPORT_NEEDS_PREDECLARATION 1
    54 #  define _STLP_HAS_SPECIFIC_PROLOG_EPILOG
    55 
    56 // # ifndef __BUILDING_STLPORT
    57 // #  define _STLP_USE_TEMPLATE_EXPORT 1
    58 // # endif
    59 
    60 # if (_STLP_MSVC >= 1310)
    61 # define _STLP_NO_METHOD_SPECIALIZATION 1
    62 # endif	//	(_STLP_MSVC >= 1310)
    63 
    64 #  if (_STLP_MSVC > 1100)
    65      typedef char __stl_char;
    66 #   define _STLP_DEFAULTCHAR __stl_char
    67 #  endif /* (_STLP_MSVC < 1100 ) */
    68 
    69 # if (_STLP_MSVC <= 1310)
    70 # define _STLP_STATIC_CONST_INIT_BUG   1
    71 # endif	//	(_STLP_MSVC <= 1310)
    72 
    73 # if (_STLP_MSVC <= 1300) 
    74 #  define _STLP_DEFAULT_CONSTRUCTOR_BUG 1
    75 
    76 #  define _STLP_NO_TYPENAME_IN_TEMPLATE_HEADER
    77 // fails to properly resolve call to sin() from within sin()
    78 #  define _STLP_SAME_FUNCTION_NAME_RESOLUTION_BUG
    79 #  define _STLP_NO_TYPENAME_ON_RETURN_TYPE 1
    80 // boris : not defining this macro for SP5 causes other problems
    81 // #  if !defined (_MSC_FULL_VER) || (_MSC_FULL_VER < 12008804 )
    82 #  define _STLP_NO_USING_FOR_GLOBAL_FUNCTIONS 1
    83 //#  endif
    84 #  define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER 1
    85 #  define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION 1
    86 #  define _STLP_NO_FRIEND_TEMPLATES
    87 // VC++ cannot handle default allocator argument in template constructors
    88 #  define _STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS
    89 // there is no partial spec, and MSVC breaks on simulating it for iterator_traits queries
    90 #  define _STLP_USE_OLD_HP_ITERATOR_QUERIES
    91 // #  define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS 1
    92 #  define _STLP_NO_QUALIFIED_FRIENDS    1
    93 #  define _STLP_DONT_USE_BOOL_TYPEDEF 1
    94 # endif /* _STLP_MSVC <= 1300 */
    95 
    96 # endif /* _STLP_MSVC */
    97 
    98 # if (_MSC_VER <= 1310) 
    99 #  define _STLP_VENDOR_GLOBAL_CSTD
   100 // They included the necessary coding,
   101 // but the beta still has an issue with template classes
   102 // ok:    class a { static const int v = 2; };
   103 // error: template &lt;class _Tp> class a { static const int v = 2; };
   104 #  if !defined (_STLP_WHOLE_NATIVE_STD) && ! defined (_STLP_REDEFINE_STD)
   105 #    define _STLP_REDEFINE_STD
   106 #  endif
   107 # endif /* (_MSC_VER <= 1310) */
   108 
   109 # if (_MSC_VER <= 1200)  // including MSVC 6.0
   110 //  these work, as long they are inline
   111 #  define _STLP_INLINE_MEMBER_TEMPLATES 1
   112 #  define _STLP_NO_MEMBER_TEMPLATE_KEYWORD 1
   113 #  define _STLP_GLOBAL_NEW_HANDLER
   114 #  define _STLP_DONT_RETURN_VOID 1
   115 #  define _STLP_DONT_USE_NESTED_TCLASS_THROUGHT_TPARAM 1
   116 # endif /* (_MSC_VER <= 1200) */
   117 
   118 # if ( _MSC_VER<=1010 )
   119 // "bool" is reserved in MSVC 4.1 while <yvals.h> absent, so :
   120 // #    define _STLP_USE_ABBREVS           1
   121 #  define _STLP_NO_BAD_ALLOC
   122 #  define _STLP_HAS_NO_NEW_C_HEADERS 1
   123 #  define _STLP_NO_NEW_NEW_HEADER 1
   124 # elif (_MSC_VER < 1100)
   125 // VC++ 4.2 and higher
   126 #  define _STLP_YVALS_H 1
   127 #  define _STLP_HAS_NO_NEW_IOSTREAMS 1
   128 # endif /* 1010 */
   129 
   130 # if defined (_STLP_MSVC) && ( _STLP_MSVC < 1200 ) /* VC++ 6.0 */
   131 // #  define _STLP_NO_MEMBER_TEMPLATES 1
   132 // #  define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS 1
   133 #  define _STLP_NON_TYPE_TMPL_PARAM_BUG 1 
   134 #  define _STLP_THROW_RETURN_BUG 1
   135 #  define _STLP_NO_MEMBER_TEMPLATE_CLASSES 1
   136 # endif
   137 
   138 # if defined (_STLP_MSVC) && ( _STLP_MSVC < 1100 )
   139 #  ifndef _STLP_NO_OWN_IOSTREAMS
   140 #   define _STLP_NO_OWN_IOSTREAMS
   141 #   undef  _STLP_OWN_IOSTREAMS
   142 #  endif
   143 // #  define _STLP_NESTED_TYPE_PARAM_BUG 1
   144 // Debug mode does not work for 4.2
   145 #  ifdef _STLP_DEBUG
   146 #   pragma message ("STLport debug mode does not work for VC++ 4.2, turning _STLP_DEBUG off ...")
   147 #    undef _STLP_DEBUG
   148 #  endif
   149 #  define _STLP_NO_BOOL            1
   150 #  define _STLP_NEED_TYPENAME      1
   151 #  define _STLP_NEED_EXPLICIT      1
   152 #   define _STLP_NEED_MUTABLE       1
   153 #   define _STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX
   154 #   define _STLP_LIMITED_DEFAULT_TEMPLATES 1
   155 
   156 // up to 4.2, library is in global namespace
   157 #   define _STLP_VENDOR_GLOBAL_STD
   158 #   define _STLP_NONTEMPL_BASE_MATCH_BUG 1
   159 #   define _STLP_BROKEN_USING_DIRECTIVE  1
   160 #   define _STLP_NO_ARROW_OPERATOR
   161 #   define _STLP_NO_SIGNED_BUILTINS 1
   162 #   define _STLP_NO_EXCEPTION_SPEC 1
   163 #   undef  _STLP_DEFAULT_TYPE_PARAM
   164 #   undef  _STLP_HAS_NO_NAMESPACES
   165 #   undef  _STLP_NO_AT_MEMBER_FUNCTION
   166 #   undef  _STLP_NO_MEMBER_TEMPLATES
   167 #   undef  _STLP_NO_MEMBER_TEMPLATE_CLASSES
   168 #   define  _STLP_HAS_NO_NAMESPACES 1
   169 #   define  _STLP_NO_AT_MEMBER_FUNCTION 1
   170 #  define  _STLP_NO_MEMBER_TEMPLATES
   171 #  define  _STLP_NO_MEMBER_TEMPLATE_CLASSES
   172 # endif /* 1100 */
   173 
   174 // If we are under Windows CE, include appropriate config
   175 
   176 # ifdef UNDER_CE
   177 #   include <config/stl_wince.h>
   178 # endif
   179 
   180 # ifdef __ICL
   181 #  define _STLP_LIB_BASENAME "stlport_icl"
   182 # else
   183 # if (_MSC_VER >= 1310) 
   184 #   define _STLP_LIB_BASENAME "stlport_vc71"
   185 # elif (_MSC_VER >= 1300) 
   186 #   define _STLP_LIB_BASENAME "stlport_vc7"
   187 # elif (_MSC_VER >= 1200)
   188 #    define _STLP_LIB_BASENAME "stlport_vc6"
   189 //#   endif
   190 #  elif (_MSC_VER >= 1100)
   191 //#   ifdef _UNICODE
   192 //#    define _STLP_LIB_BASENAME "stlport_vc5_unicode"
   193 //#   else
   194 #    define _STLP_LIB_BASENAME "stlport_vc5"
   195 //#   endif
   196 #  endif /* (_MSC_VER >= 1200) */
   197 # endif /* __ICL */
   198 
   199 
   200 #    if (defined (__ICL) && (__ICL < 450)) || (_MSC_VER < 1200)
   201 //    only static STLport lib now works for ICL and VC 5.0
   202 #     undef  _STLP_USE_STATIC_LIB
   203 #     define _STLP_USE_STATIC_LIB
   204 //    disable hook which makes template symbols to be searched for in the library
   205 #     undef _STLP_NO_CUSTOM_IO
   206 #    endif
   207 
   208 #if defined (__WINS__)
   209 
   210 #  ifdef _PTHREADS
   211 #    undef  _PTHREADS
   212 #  endif
   213 #  ifdef _STLP_PTHREADS
   214 #    undef _STLP_PTHREADS
   215 #  endif
   216 #  ifdef _STLP_THREADS
   217 #    undef _STLP_THREADS
   218 #  endif
   219 
   220 #   undef _STLP_NATIVE_C_HEADER
   221 #   define _STLP_NATIVE_C_HEADER(x) <libc/##x>
   222 
   223 #   define _STLP_NO_NEW_HEADER
   224 #   define _STLP_HAS_NO_NEW_C_HEADERS 1
   225 #   define _STLP_NO_THREADS
   226 #   define _STLP_NO_EXCEPTIONS
   227 #   define _STLP_USE_TRAP_LEAVE 
   228 #   define _STLP_NO_EXCEPTION_HEADER
   229 // #   define _STLP_NO_WCHAR_T
   230 #   define _STLP_NO_IOSTREAMS
   231 #   define _STLP_NO_OWN_IOSTREAMS
   232 #   undef  _STLP_OWN_IOSTREAMS
   233 #   define _NOTHREADS
   234 #   define _STLP_USE_NEWALLOC
   235 #   define _STLP_NO_NODE_ALLOC
   236 #   define _STLP_LITTLE_ENDIAN
   237 #   define _STLP_NO_LONG_DOUBLE
   238 #   define _STLP_LABS
   239 #   define _STLP_LDIV
   240 #   define _STLP_NO_NAMESPACES
   241 #   define _STLP_CONST_CONSTRUCTOR_BUG
   242 //#	define _STLP_IMPLICIT_STRING_TO_DESC
   243 // #   define _STLP_MULTI_CONST_TEMPLATE_ARG_BUG
   244 #endif
   245 
   246 #   include <config/vc_select_lib.h>