home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / stlpt453.zip / STLport-4.5.3 / stlport / config / stl_mycomp.h < prev    next >
C/C++ Source or Header  |  2001-02-05  |  10KB  |  260 lines

  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 manulal 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 functinality
  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. // Header <new> that comes with the compiler 
  113. // does not define bad_alloc exception
  114. // #  define _STLP_NO_BAD_ALLOC  1
  115.  
  116. // Uncomment if member template methods are not available
  117. // #  define _STLP_NO_MEMBER_TEMPLATES   1
  118.  
  119. // Uncomment if member template classes are not available
  120. // #  define _STLP_NO_MEMBER_TEMPLATE_CLASSES   1
  121.  
  122. // Uncomment if no "template" keyword should be used with member template classes
  123. // #  define _STLP_NO_MEMBER_TEMPLATE_KEYWORD   1
  124.  
  125. // Uncomment if friend member templates are not available
  126. // #  define _STLP_NO_FRIEND_TEMPLATES   1
  127.  
  128. // Compiler does not accept friend declaration qualified with namespace name.
  129. // #  define _STLP_NO_QUALIFIED_FRIENDS 1
  130.  
  131. // Uncomment if partial specialization is not available
  132. // #  define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION 1
  133.  
  134. // Define if class being partially specialized require full name (template parameters)
  135. // of itself for method declarations
  136. // #  define _STLP_PARTIAL_SPEC_NEEDS_TEMPLATE_ARGS
  137.  
  138. // Compiler has problems specializing members of partially 
  139. // specialized class
  140. // #  define _STLP_MEMBER_SPECIALIZATION_BUG
  141.  
  142. // Uncomment if partial order of template functions is not available
  143. // #  define _STLP_NO_FUNC_PARTIAL_ORDERING 1
  144.  
  145. // Uncomment if specialization of methods is not allowed
  146. // #  define _STLP_NO_METHOD_SPECIALIZATION  1
  147.  
  148. // Uncomment if full  specialization does not use partial spec. syntax : template <> struct ....
  149. // #  define _STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX  1
  150.  
  151. // Uncomment if compiler does not support explicit template arguments for functions
  152. // # define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS
  153.  
  154. // Uncomment if "__typetraits is being instaniated automatically by the compiler (SGI only ?)
  155. // #  define _STLP_AUTOMATIC_TYPE_TRAITS 1
  156.  
  157. // Uncomment this if your compiler can't inline while(), for()
  158. // #  define _STLP_LOOP_INLINE_PROBLEMS 1
  159.  
  160. // Define if the compiler fails to match a template function argument of base
  161. // #  define _STLP_BASE_MATCH_BUG          1
  162.  
  163. // Define if the compiler fails to match a template function argument of base
  164. // (non-template)
  165. //#  define  _STLP_NONTEMPL_BASE_MATCH_BUG 1
  166.  
  167. // Define if the compiler rejects outline method definition 
  168. // explicitly taking nested types/typedefs
  169. // #  define _STLP_NESTED_TYPE_PARAM_BUG   1
  170.  
  171. // Compiler requires typename keyword on outline method definition 
  172. // explicitly taking nested types/typedefs
  173. // #define  _STLP_TYPENAME_ON_RETURN_TYPE
  174.  
  175. // Define if the baseclass typedefs not visible from outside
  176. // #  define _STLP_BASE_TYPEDEF_OUTSIDE_BUG 1
  177.  
  178. // if your compiler have serious problems with typedefs, try this one
  179. // #  define _STLP_BASE_TYPEDEF_BUG          1
  180.  
  181. // Uncomment if getting errors compiling mem_fun* adaptors
  182. // #  define _STLP_MEMBER_POINTER_PARAM_BUG 1
  183.  
  184. // #  define _STLP_UNINITIALIZABLE_PRIVATE  1
  185.  
  186. // Defined if the compiler
  187. // has trouble instantiating static array members with dimension defined as enum
  188. // # define _STLP_STATIC_ARRAY_BUG
  189.  
  190. // * _STLP_STATIC_CONST_INIT_BUG: defined if the compiler can't handle a
  191. //   constant-initializer in the declaration of a static const data member
  192. //   of integer type.  (See section 9.4.2, paragraph 4, of the C++ standard.)
  193. // # define _STLP_STATIC_CONST_INIT_BUG
  194.  
  195. // Define if default constructor for builtin integer type fails to initialize it to 0
  196. // #  define _STLP_DEFAULT_CONSTRUCTOR_BUG    1
  197.  
  198. // Defined if constructor
  199. // required to explicitly call member's default constructors for const objects
  200. // #  define _STLP_CONST_CONSTRUCTOR_BUG    1
  201.  
  202. // Defined if the compiler has trouble calling POD-types constructors/destructors
  203. // #  define _STLP_TRIVIAL_CONSTRUCTOR_BUG    1
  204. // #  define _STLP_TRIVIAL_DESTRUCTOR_BUG    1
  205.  
  206. // Define if having problems specializing maps/sets with
  207. // key type being const 
  208. // #  define _STLP_MULTI_CONST_TEMPLATE_ARG_BUG
  209.  
  210. // Uncomment this to disable -> operators on all iterators
  211. // #  define   _STLP_NO_ARROW_OPERATOR 1
  212.  
  213. // Uncomment this to disble at() member functions for containers
  214. // #  define   _STLP_NO_AT_MEMBER_FUNCTION 1
  215.  
  216. // Uncomment if native new-style iostreams are not available
  217. // #define    _STLP_HAS_NO_NEW_IOSTREAMS    1
  218.  
  219. // Define this if compiler lacks <exception> header
  220. // #  define _STLP_NO_EXCEPTION_HEADER 1
  221.  
  222. // Uncomment this if your C library has lrand48() function
  223. // #  define _STLP_RAND48 1
  224.  
  225. // Uncomment if native new-style C library headers lile <cstddef>, etc are not available.
  226. // #   define _STLP_HAS_NO_NEW_C_HEADERS 1
  227.  
  228. // uncomment if new-style headers <new> is available
  229. // #  define _STLP_HAS_NEW_NEW_HEADER 1
  230.  
  231. // uncomment this if <iostream> and other STD headers put their stuff in ::namespace,
  232. // not std::
  233. // #  define _STLP_VENDOR_GLOBAL_STD
  234.  
  235. // uncomment this if <cstdio> and the like put stuff in ::namespace,
  236. // not std::
  237. // #  define _STLP_VENDOR_GLOBAL_CSTD
  238.  
  239. // Edit relative path below (or put full path) to get native 
  240. // compiler headers included. Default is "../include".
  241. // C headers may reside in different directory, so separate macro is provided.
  242. // Hint : never install STLport in the directory that ends with "include"
  243. // # define _STLP_NATIVE_INCLUDE_PATH ../include
  244. // # define _STLP_NATIVE_C_INCLUDE_PATH ../include
  245. // # define _STLP_NATIVE_CPP_C_INCLUDE_PATH ../include
  246.  
  247. // This macro constructs header path from directory and name.
  248. // You may change it if your compiler does not understand "/". 
  249. // #  define _STLP_MAKE_HEADER(path, header) <path/header>
  250.  
  251. // This macro constructs native include header path from include path and name.
  252. // You may have do define it if experirncing problems with preprocessor
  253. // # define _STLP_NATIVE_HEADER(header) _STLP_MAKE_HEADER(_STLP_NATIVE_INCLUDE_PATH,header)
  254.  
  255. // Same for C headers
  256. // _STLP_NATIVE_C_HEADER(header)
  257.  
  258. //==========================================================
  259. # endif
  260.