epoc32/include/stdapis/stlport/stl_user_config.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
williamr@2
     1
/*
williamr@2
     2
 * Copyright (c) 1999 
williamr@2
     3
 * Boris Fomitchev
williamr@2
     4
 *
williamr@2
     5
 * This material is provided "as is", with absolutely no warranty expressed
williamr@2
     6
 * or implied. Any use is at your own risk.
williamr@2
     7
 *
williamr@2
     8
 * Permission to use or copy this software for any purpose is hereby granted 
williamr@2
     9
 * without fee, provided the above notices are retained on all copies.
williamr@2
    10
 * Permission to modify the code and to distribute modified code is granted,
williamr@2
    11
 * provided the above notices are retained, and a notice that the code was
williamr@2
    12
 * modified is included with the above copyright notice.
williamr@2
    13
 *
williamr@2
    14
 */
williamr@2
    15
williamr@2
    16
/*
williamr@2
    17
 * Purpose of this file :
williamr@2
    18
 *
williamr@2
    19
 * To hold user-definable portion of STLport settings which may be overridden
williamr@2
    20
 * on per-project basis.
williamr@2
    21
 * Please note that if you use STLport iostreams (compiled library) then you have
williamr@2
    22
 * to use consistent settings when you compile STLport library and your project. 
williamr@2
    23
 * Those settings are defined in _site_config.h and have to be the same for a given
williamr@2
    24
 * STLport installation.
williamr@2
    25
 *
williamr@2
    26
 */
williamr@2
    27
williamr@2
    28
williamr@2
    29
//==========================================================
williamr@2
    30
// User-settable macros that control compilation:
williamr@2
    31
//              Features selection
williamr@2
    32
//==========================================================
williamr@2
    33
williamr@2
    34
/* _STLP_NO_OWN_IOSTREAMS: 
williamr@2
    35
 * __STL_NO_SGI_IOSTREAMS (in older versions)
williamr@2
    36
 *  This is major configuration switch.
williamr@2
    37
 *  Turn it on to disable use of SGI iostreams and use wrappers 
williamr@2
    38
 *  around your compiler's iostreams, like before.
williamr@2
    39
 *  Keep it off if you want to use  SGI iostreams 
williamr@2
    40
 *  (Note that in this case you have to compile library in ../src
williamr@2
    41
 *  and supply resulting library at link time).
williamr@2
    42
 *
williamr@2
    43
 */
williamr@2
    44
williamr@2
    45
// # define   _STLP_NO_OWN_IOSTREAMS	1
williamr@2
    46
williamr@2
    47
williamr@2
    48
/* 
williamr@2
    49
 * This macro only works in non-SGI iostreams mode.
williamr@2
    50
 *
williamr@2
    51
 * Uncomment to suppress using new-style streams even if they are
williamr@2
    52
 * available.
williamr@2
    53
 * Beware - _STLP_USE_OWN_NAMESPACE depends on this macro, too.
williamr@2
    54
 * Do that only if you are absolutely sure backwards-compatible 
williamr@2
    55
 * <iostream.h> is not actually a wrapper with <iostream>
williamr@2
    56
 * Hint : In VC++ 6.x, they are not.
williamr@2
    57
 */
williamr@2
    58
williamr@2
    59
// #define   _STLP_NO_NEW_IOSTREAMS	1
williamr@2
    60
williamr@2
    61
/*
williamr@2
    62
 * Use this switch for embedded systems where no iostreams are available
williamr@2
    63
 * at all. STLport own iostreams will also get disabled automatically then.
williamr@2
    64
 */
williamr@2
    65
// # define _STLP_NO_IOSTREAMS 1
williamr@2
    66
williamr@2
    67
/* 
williamr@2
    68
 * Set _STLP_DEBUG to turn the "Debug Mode" on.
williamr@2
    69
 * That gets you checked iterators/ranges in the manner
williamr@2
    70
 * of "Safe STL". Very useful for debugging. Thread-safe.
williamr@2
    71
 * Please do not forget to link proper STLport library flavor
williamr@2
    72
 * (e.g libstlport_gcc_stldebug.a) when you set this flag in STLport iostreams mode.
williamr@2
    73
 */
williamr@2
    74
//#define   _STLP_DEBUG 1
williamr@2
    75
williamr@2
    76
williamr@2
    77
/* 
williamr@2
    78
 *
williamr@2
    79
 *  _STLP_NO_CUSTOM_IO : define this if you do not instantiate basic_xxx iostream classes  with custom types (which is most likely the case).
williamr@2
    80
 *  Custom means types other than char, wchar and char_traits<>,
williamr@2
    81
 *  like basic_ostream<my_char_type, my_traits<my_char_type> >
williamr@2
    82
 *  When this option is on, most non-inline template functions definitions for iostreams are not seen by the client.
williamr@2
    83
 *  Default is off, just not to break compilation for those who do use those types.
williamr@2
    84
 *  which saves a lot of compile time for most compilers, also object and executable size for some.
williamr@2
    85
 *  That also guarantees that you still use optimized standard i/o when you compile your program without optimization. 
williamr@2
    86
 *  Option does not affect STLport library build; you may use the same binary library with and without this option, 
williamr@2
    87
 *  on per-project basis.
williamr@2
    88
 *
williamr@2
    89
 */
williamr@2
    90
//#define _STLP_NO_CUSTOM_IO
williamr@2
    91
williamr@2
    92
williamr@2
    93
/* 
williamr@2
    94
 * _STLP_NO_RELOPS_NAMESPACE: if defined, don't put the relational
williamr@2
    95
 * operator templates (>, <=. >=, !=) in namespace std::rel_ops, even
williamr@2
    96
 * if the compiler supports namespaces.
williamr@2
    97
 * Note : if the compiler do not support namespaces, those operators are not be provided by default,
williamr@2
    98
 * to simulate hiding them into rel_ops. This was proved to resolve many compiler bugs with ambiguity.
williamr@2
    99
 */
williamr@2
   100
williamr@2
   101
// #define _STLP_NO_RELOPS_NAMESPACE 1
williamr@2
   102
williamr@2
   103
williamr@2
   104
/*
williamr@2
   105
 * If _STLP_USE_OWN_NAMESPACE is in effect, STLport by default will not try
williamr@2
   106
 * to rename std:: for the user
williamr@2
   107
 * to _STL::. If you do want this feature, please define the following switch :
williamr@2
   108
 */
williamr@2
   109
// # define _STLP_REDEFINE_STD 1
williamr@2
   110
williamr@2
   111
williamr@2
   112
/*
williamr@2
   113
 * _STLP_WHOLE_NATIVE_STD : only meaningful in _STLP_USE_OWN_NAMESPACE mode.
williamr@2
   114
 * Normally, STLport only imports necessary components from native std:: namespace -
williamr@2
   115
 * those not yet provided by STLport (<iostream>, <complex>, etc.) 
williamr@2
   116
 * and their dependencies (<string>, <stdexcept>). 
williamr@2
   117
 * You might want everything from std:: being available in std:: namespace when you
williamr@2
   118
 * include corresponding STLport header (like STLport <map> provides std::map as well, etc.),
williamr@2
   119
 * if you are going to use both stlport:: and std:: components in your code.
williamr@2
   120
 * Otherwise this option is not recommended as it increases the size of your object files
williamr@2
   121
 * and slows down compilation.
williamr@2
   122
 */
williamr@2
   123
// # define _STLP_WHOLE_NATIVE_STD
williamr@2
   124
williamr@2
   125
williamr@2
   126
/*
williamr@2
   127
 * Use this option to catch uninitialized members in your classes.
williamr@2
   128
 * When it is set, construct() and destroy() fill the class storage
williamr@2
   129
 * with _STLP_SHRED_BYTE (see below). 
williamr@2
   130
 * Note : _STLP_DEBUG and _STLP_DEBUG_ALLOC don't set this option automatically.
williamr@2
   131
 */
williamr@2
   132
williamr@2
   133
// # define _STLP_DEBUG_UNINITIALIZED 1
williamr@2
   134
williamr@2
   135
/*
williamr@2
   136
 * Uncomment and provide a definition for the byte with which raw memory
williamr@2
   137
 * will be filled if _STLP_DEBUG_ALLOC or _STLP_DEBUG_UNINITIALIZED is defined. 
williamr@2
   138
 * Choose a value which is likely to cause a noticeable problem if dereferenced 
williamr@2
   139
 * or otherwise abused. A good value may already be defined for your platform; see
williamr@2
   140
 * stl_config.h
williamr@2
   141
 */
williamr@2
   142
// #define _STLP_SHRED_BYTE 0xA3
williamr@2
   143
williamr@2
   144
/*
williamr@2
   145
 *  This option is for gcc users only and only affects systems where native linker
williamr@2
   146
 *  does not let gcc to implement automatic instantiation of static template data members/
williamr@2
   147
 *  It is being put in this file as there is no way to check if we are using GNU ld automatically,
williamr@2
   148
 *  so it becomes user's responsibility.
williamr@2
   149
 * 
williamr@2
   150
 */
williamr@2
   151
williamr@2
   152
// #define _STLP_GCC_USES_GNU_LD
williamr@2
   153
williamr@2
   154
williamr@2
   155
//==========================================================
williamr@2
   156
// Compatibility section
williamr@2
   157
//==========================================================
williamr@2
   158
williamr@2
   159
/*
williamr@2
   160
 *  Define this macro to disable anachronistic constructs (like the ones used in HP STL and
williamr@2
   161
 *  not included in final standard, etc. 
williamr@2
   162
 */
williamr@2
   163
// define _STLP_NO_ANACHRONISMS 1
williamr@2
   164
williamr@2
   165
/*
williamr@2
   166
 *  Define this macro to disable STLport extensions (for example, to make sure your code will 
williamr@2
   167
 *  compile with some other implementation )
williamr@2
   168
 */
williamr@2
   169
// define _STLP_NO_EXTENSIONS   1
williamr@2
   170
williamr@2
   171
williamr@2
   172
/* 
williamr@2
   173
 * You should define this macro if compiling with MFC - STLport <stl/_config.h>
williamr@2
   174
 * then include <afx.h> instead of <windows.h> to get synchronisation primitives 
williamr@2
   175
 *
williamr@2
   176
 */
williamr@2
   177
williamr@2
   178
// # define _STLP_USE_MFC 1
williamr@2
   179
williamr@2
   180
williamr@2
   181
// boris : this setting is here as we cannot detect precense of new Platform SDK automatically 
williamr@2
   182
// If you are using new PSDK with VC++ 6.0 or lower, please define this to get correct prototypes for InterlockedXXX functions
williamr@2
   183
//# define _STLP_NEW_PLATFORM_SDK 1
williamr@2
   184
williamr@2
   185
/*
williamr@2
   186
 * Use minimum set of default arguments on template classes that have more
williamr@2
   187
 * than one - for example map<>, set<>.
williamr@2
   188
 * This has effect only if _STLP_LIMITED_DEFAULT_TEMPLATES is on.
williamr@2
   189
 * If _STLP_MINIMUM_DEFAULT_TEMPLATE_PARAMS is set, you'll be able to compile
williamr@2
   190
 * set<T> with those compilers, but you'll have to use __set__<T, less<T>>
williamr@2
   191
 *
williamr@2
   192
 * Affects : map<>, multimap<>, set<>, multiset<>, hash_*<>, 
williamr@2
   193
 * queue<>, priority_queue<>, stack<>, istream_iterator<>
williamr@2
   194
 */
williamr@2
   195
williamr@2
   196
// # define _STLP_MINIMUM_DEFAULT_TEMPLATE_PARAMS 1
williamr@2
   197
williamr@2
   198
//==========================================================
williamr@2
   199
williamr@2
   200
// Local Variables:
williamr@2
   201
// mode:C++
williamr@2
   202
// End: