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