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