stdcpp/include/config/stl_mycomp.h
changeset 0 e4d67989cc36
equal deleted inserted replaced
-1:000000000000 0:e4d67989cc36
       
     1 /*
       
     2  * Copyright (c) 1997
       
     3  * Moscow Center for SPARC Technology
       
     4  *
       
     5  * Copyright (c) 1999 
       
     6  * Boris Fomitchev
       
     7  *
       
     8  * This material is provided "as is", with absolutely no warranty expressed
       
     9  * or implied. Any use is at your own risk.
       
    10  *
       
    11  * Permission to use or copy this software for any purpose is hereby granted 
       
    12  * without fee, provided the above notices are retained on all copies.
       
    13  * Permission to modify the code and to distribute modified code is granted,
       
    14  * provided the above notices are retained, and a notice that the code was
       
    15  * modified is included with the above copyright notice.
       
    16  *
       
    17  */
       
    18 
       
    19 /*
       
    20  * Purpose of this file :
       
    21  *
       
    22  * A list of COMPILER-SPECIFIC portion of STLport settings.
       
    23  * This file is provided to help in manual configuration
       
    24  * of STLport. This file is being included by stlcomp.h 
       
    25  * when STLport is unable to identify your compiler.
       
    26  * Please remove the error diagnostic below before adjusting 
       
    27  * macros.
       
    28  * 
       
    29  */
       
    30 # ifndef _STLP_MYCOMP_H
       
    31 #  define  _STLP_MYCOMP_H
       
    32 
       
    33 # error "Your compiler version is not recognized by STLport. Please edit <config/stl_mycomp.h>"
       
    34 
       
    35 //==========================================================
       
    36 
       
    37 // the values choosen here as defaults try to give
       
    38 // maximum functionality on the most conservative settings
       
    39 
       
    40 // Mostly correct guess, change it for Alpha (and other environments
       
    41 // that has 64-bit "long")
       
    42 // #  define _STLP_UINT32_T unsigned long
       
    43 
       
    44 // Disables wchar_t functionality
       
    45 // #  define _STLP_NO_WCHAR_T  1
       
    46 
       
    47 // Define if wchar_t is not a unique type, and is actually a typedef to unsigned short. 
       
    48 // #  define _STLP_WCHAR_T_IS_USHORT 1
       
    49 
       
    50 // Uncomment if long long is available
       
    51 // #  define _STLP_LONG_LONG long long
       
    52 
       
    53 // Uncomment if long double is not available
       
    54 // #  define _STLP_NO_LONG_DOUBLE 1
       
    55 
       
    56 // Uncomment this if your compiler does not support "typename" keyword
       
    57 // #  define _STLP_NEED_TYPENAME 1
       
    58 
       
    59 // Uncomment this if your compiler does not support "mutable" keyword
       
    60 // #  define _STLP_NEED_MUTABLE 1
       
    61 
       
    62 // Uncomment this if your compiler does not support "explicit" keyword
       
    63 // #  define _STLP_NEED_EXPLICIT 1
       
    64 
       
    65 // Uncomment if new-style-casts like const_cast<> are not available
       
    66 // #  define _STLP_NO_NEW_STYLE_CASTS 1
       
    67 
       
    68 // Uncomment this if your compiler does not have "bool" type
       
    69 // #  define  _STLP_NO_BOOL 1
       
    70 
       
    71 // Uncomment this if your compiler does not have "bool" type, but has "bool" keyword reserved
       
    72 // #  define  _STLP_DONT_USE_BOOL_TYPEDEF 1
       
    73 
       
    74 // Uncomment this if your compiler does not have "bool" type, but defines "bool" in <yvals.h>
       
    75 // #  define  _STLP_YVALS_H 1
       
    76 
       
    77 // Uncomment this if your compiler has limited or no default template arguments for classes
       
    78 // #  define _STLP_LIMITED_DEFAULT_TEMPLATES 1
       
    79 
       
    80 // Uncomment this if your compiler support only complete (not dependent on other parameters)
       
    81 // types as default parameters for class templates
       
    82 // #  define _STLP_DEFAULT_TYPE_PARAM 1
       
    83 
       
    84 // Uncomment this if your compiler has problem with not-type
       
    85 // default template parameters
       
    86 // #  define _STLP_NO_DEFAULT_NON_TYPE_PARAM 1
       
    87 
       
    88 // Define if compiler has
       
    89 // trouble with functions getting non-type-parameterized classes as parameters
       
    90 // #  define _STLP_NON_TYPE_TMPL_PARAM_BUG 1
       
    91 
       
    92 // Uncomment this if your compiler lacks static data members.
       
    93 // Uncomment next line if your compiler supports __attribute__((weak))
       
    94 // #  define _STLP_NO_STATIC_TEMPLATE_DATA 1
       
    95 // #  define _STLP_WEAK_ATTRIBUTE 1
       
    96 
       
    97 // Uncomment this if your compiler does not support namespaces 
       
    98 // #  define _STLP_HAS_NO_NAMESPACES 1
       
    99 
       
   100 // Uncomment if "using" keyword does not work with template types 
       
   101 // # define _STLP_BROKEN_USING_DIRECTIVE 1
       
   102 
       
   103 // Uncomment this if your compiler does not support exceptions
       
   104 // #  define _STLP_HAS_NO_EXCEPTIONS 1
       
   105 
       
   106 // Uncomment this if your compiler does not support exception specifications
       
   107 // #  define _STLP_NO_EXCEPTION_SPEC
       
   108 
       
   109 // Define this if your compiler requires return statement after throw()
       
   110 // # define _STLP_THROW_RETURN_BUG 1
       
   111 
       
   112 // Define this if your compiler do not support return of void
       
   113 // # define _STLP_DONT_RETURN_VOID 1
       
   114 
       
   115 // Header <new> that comes with the compiler 
       
   116 // does not define bad_alloc exception
       
   117 // #  define _STLP_NO_BAD_ALLOC  1
       
   118 
       
   119 // Define this if your compiler do not throw bad_alloc from the new operator
       
   120 // #  define _STLP_NEW_DONT_THROW  1
       
   121 
       
   122 // Uncomment if member template methods are not available
       
   123 // #  define _STLP_NO_MEMBER_TEMPLATES   1
       
   124 
       
   125 // Uncomment if member template classes are not available
       
   126 // #  define _STLP_NO_MEMBER_TEMPLATE_CLASSES   1
       
   127 
       
   128 // Uncomment if you cannot access member template classe throught a class template parameter
       
   129 // # define _STLP_DONT_USE_NESTED_TCLASS_THROUGHT_TPARAM 1
       
   130 
       
   131 // Uncomment if no "template" keyword should be used with member template classes
       
   132 // #  define _STLP_NO_MEMBER_TEMPLATE_KEYWORD   1
       
   133 
       
   134 // Uncomment if friend member templates are not available
       
   135 // #  define _STLP_NO_FRIEND_TEMPLATES   1
       
   136 
       
   137 // Compiler does not accept friend declaration qualified with namespace name.
       
   138 // #  define _STLP_NO_QUALIFIED_FRIENDS 1
       
   139 
       
   140 // Uncomment if partial specialization is not available
       
   141 // #  define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION 1
       
   142 
       
   143 // Define if class being partially specialized require full name (template parameters)
       
   144 // of itself for method declarations
       
   145 // #  define _STLP_PARTIAL_SPEC_NEEDS_TEMPLATE_ARGS
       
   146 
       
   147 // Compiler has problems specializing members of partially 
       
   148 // specialized class
       
   149 // #  define _STLP_MEMBER_SPECIALIZATION_BUG
       
   150 
       
   151 // Uncomment if partial order of template functions is not available
       
   152 // #  define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER 1
       
   153 
       
   154 // Uncomment if specialization of methods is not allowed
       
   155 // #  define _STLP_NO_METHOD_SPECIALIZATION  1
       
   156 
       
   157 // Uncomment if full  specialization does not use partial spec. syntax : template <> struct ....
       
   158 // #  define _STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX  1
       
   159 
       
   160 // Uncomment if compiler does not support explicit template arguments for functions
       
   161 // # define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS
       
   162 
       
   163 // Uncomment if "__typetraits is being instaniated automatically by the compiler (SGI only ?)
       
   164 // #  define _STLP_AUTOMATIC_TYPE_TRAITS 1
       
   165 
       
   166 // Uncomment this if your compiler can't inline while(), for()
       
   167 // #  define _STLP_LOOP_INLINE_PROBLEMS 1
       
   168 
       
   169 // Define if the compiler fails to match a template function argument of base
       
   170 // #  define _STLP_BASE_MATCH_BUG          1
       
   171 
       
   172 // Define if the compiler fails to match a template function argument of base
       
   173 // (non-template)
       
   174 //#  define  _STLP_NONTEMPL_BASE_MATCH_BUG 1
       
   175 
       
   176 // Define if the compiler rejects outline method definition 
       
   177 // explicitly taking nested types/typedefs
       
   178 // #  define _STLP_NESTED_TYPE_PARAM_BUG   1
       
   179 
       
   180 // Compiler requires typename keyword on outline method definition 
       
   181 // explicitly taking nested types/typedefs
       
   182 // #define  _STLP_TYPENAME_ON_RETURN_TYPE
       
   183 
       
   184 // Define if the baseclass typedefs not visible from outside
       
   185 // #  define _STLP_BASE_TYPEDEF_OUTSIDE_BUG 1
       
   186 
       
   187 // if your compiler have serious problems with typedefs, try this one
       
   188 // #  define _STLP_BASE_TYPEDEF_BUG          1
       
   189 
       
   190 // Uncomment if getting errors compiling mem_fun* adaptors
       
   191 // #  define _STLP_MEMBER_POINTER_PARAM_BUG 1
       
   192 
       
   193 // #  define _STLP_UNINITIALIZABLE_PRIVATE  1
       
   194 
       
   195 // Defined if the compiler
       
   196 // has trouble instantiating static array members with dimension defined as enum
       
   197 // # define _STLP_STATIC_ARRAY_BUG
       
   198 
       
   199 // * _STLP_STATIC_CONST_INIT_BUG: defined if the compiler can't handle a
       
   200 //   constant-initializer in the declaration of a static const data member
       
   201 //   of integer type.  (See section 9.4.2, paragraph 4, of the C++ standard.)
       
   202 // # define _STLP_STATIC_CONST_INIT_BUG
       
   203 
       
   204 // Define if default constructor for builtin integer type fails to initialize it to 0
       
   205 // #  define _STLP_DEFAULT_CONSTRUCTOR_BUG    1
       
   206 
       
   207 // Defined if constructor
       
   208 // required to explicitly call member's default constructors for const objects
       
   209 // #  define _STLP_CONST_CONSTRUCTOR_BUG    1
       
   210 
       
   211 // Defined if the compiler has trouble calling POD-types constructors/destructors
       
   212 // #  define _STLP_TRIVIAL_CONSTRUCTOR_BUG    1
       
   213 // #  define _STLP_TRIVIAL_DESTRUCTOR_BUG    1
       
   214 
       
   215 // Define if having problems specializing maps/sets with
       
   216 // key type being const 
       
   217 // #  define _STLP_MULTI_CONST_TEMPLATE_ARG_BUG
       
   218 
       
   219 // Uncomment this to disable -> operators on all iterators
       
   220 // #  define   _STLP_NO_ARROW_OPERATOR 1
       
   221 
       
   222 // Uncomment this to disble at() member functions for containers
       
   223 // #  define   _STLP_NO_AT_MEMBER_FUNCTION 1
       
   224 
       
   225 // Uncomment if native new-style iostreams are not available
       
   226 // #define    _STLP_HAS_NO_NEW_IOSTREAMS	1
       
   227 
       
   228 // Define this if compiler lacks <exception> header
       
   229 // #  define _STLP_NO_EXCEPTION_HEADER 1
       
   230 
       
   231 // Uncomment this if your C library has lrand48() function
       
   232 // #  define _STLP_RAND48 1
       
   233 
       
   234 // Uncomment if native new-style C library headers lile <cstddef>, etc are not available.
       
   235 // #   define _STLP_HAS_NO_NEW_C_HEADERS 1
       
   236 
       
   237 // uncomment if new-style headers <new> is available
       
   238 // #  define _STLP_HAS_NEW_NEW_HEADER 1
       
   239 
       
   240 // uncomment this if <iostream> and other STD headers put their stuff in ::namespace,
       
   241 // not std::
       
   242 // #  define _STLP_VENDOR_GLOBAL_STD
       
   243 
       
   244 // uncomment this if <cstdio> and the like put stuff in ::namespace,
       
   245 // not std::
       
   246 // #  define _STLP_VENDOR_GLOBAL_CSTD
       
   247 
       
   248 // Edit relative path below (or put full path) to get native 
       
   249 // compiler headers included. Default is "../include".
       
   250 // C headers may reside in different directory, so separate macro is provided.
       
   251 // Hint : never install STLport in the directory that ends with "include"
       
   252 // # define _STLP_NATIVE_INCLUDE_PATH ../include
       
   253 // # define _STLP_NATIVE_C_INCLUDE_PATH ../include
       
   254 // # define _STLP_NATIVE_CPP_C_INCLUDE_PATH ../include
       
   255 
       
   256 // This macro constructs header path from directory and name.
       
   257 // You may change it if your compiler does not understand "/". 
       
   258 // #  define _STLP_MAKE_HEADER(path, header) <path/header>
       
   259 
       
   260 // This macro constructs native include header path from include path and name.
       
   261 // You may have do define it if experirncing problems with preprocessor
       
   262 // # define _STLP_NATIVE_HEADER(header) _STLP_MAKE_HEADER(_STLP_NATIVE_INCLUDE_PATH,header)
       
   263 
       
   264 // Same for C headers
       
   265 // #define _STLP_NATIVE_C_HEADER(header)
       
   266 
       
   267 //==========================================================
       
   268 # endif