/usr/include/vxl/vcl/emulation/stlcomp.h is in libvxl1-dev 1.17.0.dfsg2-4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 | /*
*
* Copyright (c) 1997
* Moscow Center for SPARC Technology
*
* Permission to use, copy, modify, distribute and sell this software
* and its documentation for any purpose is hereby granted without fee,
* provided that the above copyright notice appear in all copies and
* that both that copyright notice and this permission notice appear
* in supporting documentation. Moscow Center for SPARC Technology makes no
* representations about the suitability of this software for any
* purpose. It is provided "as is" without express or implied warranty.
*
*/
#ifndef __STLCOMP_H
# define __STLCOMP_H
//==========================================================
// Features selection
// Uncomment that to disable exception handling
// # define __STL_NO_EXCEPTIONS 1
// Uncomment that to disable std namespace usage
// # define __STL_NO_NAMESPACES 1
// Comment that to not include defalloc.h ( no defaults changed )
# define __STL_USE_DEFALLOC 1
// Uncomment that to to use new-based allocator as default
// # define __STL_USE_NEWALLOC 1
// Uncomment this to use malloc-based allocator as default
// # define __STL_USE_MALLOC 1
// Uncomment this to disable using std by default
// # define __STL_NO_USING_STD 1
// define __STL_USE_ABBREVS if your linker has trouble with long
// external symbols
// # define __STL_USE_ABBREVS 1
// set this to force checked allocators
// # define __STL_DEBUG_ALLOC 1
// Mostly correct guess
# define __STL_UINT32_T unsigned long
//==========================================================
//==========================================================
// default values of autoconf flags
//==========================================================
// the values choosen here as defaults try to give
// maximum functionality on the most conservative settings
// Uncomment this if your compiler supports "bool"
// # define __STL_BOOL_KEYWORD 1
// Uncomment this if your compiler has "bool" keyword reserved
// # define __STL_RESERVED_BOOL_KEYWORD 1
// Comment this if your compiler doesn't support that
# define __STL_DEFAULT_TEMPLATE_PARAM 1
// Uncomment this if your compiler support only complete types as
// default parameters
// # define __STL_DEFAULT_TYPE_PARAM 1
// Comment this if your compiler lacks static data
// members template declarations
// Uncomment next line if your compiler supports __attribute__((weak))
# define __STL_STATIC_TEMPLATE_DATA 1
// # define __STL_WEAK_ATTRIBUTE 1
// Uncomment this if your C library has lrand48() function
// # define __STL_RAND48 1
// Uncomment this if your compiler can't inline while(), for()
// # define __STL_LOOP_INLINE_PROBLEMS 1
// Uncomment this if your compiler supports namespaces
// # define __STL_NAMESPACES 1
// Uncomment this if your compiler supports typename
// # define __STL_TYPENAME 1
// Uncomment this if your compiler supports mutable
// # define __STL_MUTABLE 1
// Uncomment if const_cast<> is available
// # define __STL_NEW_STYLE_CASTS 1
// Uncomment this if your compiler supports explicit constructors
// # define __STL_EXPLICIT 1
// Uncomment this if your compiler supports exceptions
// # define __STL_EXCEPTIONS 1
// Uncomment this if your compiler supports exception specifications
// with reduced overhead ( e.g. inlines them, not vice versa)
// # define __STL_EXCEPTION_SPEC
// Uncomment if long long is available
// # define __STL_LONG_LONG 1
// Uncomment this for wchar_t functinality
// # define __STL_WCHAR_T 1
// Uncomment if needed full specialization syntax : template <> struct ....
// # define __STL_FULL_SPEC_SYNTAX 1
// Uncomment if bad_alloc defined in <new>
// # define __STL_BAD_ALLOC_DEFINED 1
// Uncomment if member templates available
// # define __STL_MEMBER_TEMPLATES 1
// Uncomment if member templates available
// # define __STL_FRIEND_TEMPLATES 1
// Uncomment if available
// # define __STL_CLASS_PARTIAL_SPECIALIZATION 1
// Uncomment if available
// # define __STL_FUNC_PARTIAL_ORDERING 1
// Uncomment if available
// # define __STL_AUTOMATIC_TYPE_TRAITS 1
// Uncomment if getting errors compiling mem_fun* adaptors
// # define __STL_MEMBER_POINTER_PARAM_BUG 1
// All these settings don't affect performance/functionality
// Comment them if your compiler has no problems.
# define __STL_BASE_MATCH_BUG 1
// # define __STL_NESTED_TYPE_PARAM_BUG 1
# define __STL_UNUSED_REQUIRED_BUG 1
# define __STL_UNINITIALIZABLE_PRIVATE 1
# define __STL_BASE_TYPEDEF_OUTSIDE_BUG 1
# define __STL_CONST_CONSTRUCTOR_BUG 1
// if your compiler have serious problems with typedefs, try this one
// # define __STL_BASE_TYPEDEF_BUG 1
//==========================================================
//==========================================================
// per-version compiler features recognition
//==========================================================
// reporting of incompatibility
# define __GIVE_UP_WITH_STL(message) void give_up() \
{ upgrade_the_compiler_to_use_STL;}
# if defined(__sgi) && !defined(__GNUC__)
# if defined(_BOOL) || ! ((_MIPS_ISA < 2) || defined (_ABIO32))
# define __STL_BOOL_KEYWORD
# endif
# if defined(_TYPENAME)
# define __STL_TYPENAME
# endif
# ifdef _PARTIAL_SPECIALIZATION_OF_CLASS_TEMPLATES
# define __STL_CLASS_PARTIAL_SPECIALIZATION
# endif
# ifdef _MEMBER_TEMPLATES
# define __STL_MEMBER_TEMPLATES
# endif
# ifdef __EXCEPTIONS
# define __STL_USE_EXCEPTIONS
# endif
# if !defined(_NOTHREADS) && !defined(_PTHREADS)
# define __STL_SGI_THREADS
# endif
# endif
// AIX xlC, is there more specific define ?
#if defined(_AIX)
# define __STL_RESERVED_BOOL_KEYWORD 1
# undef __STL_DEFAULT_TEMPLATE_PARAM
# undef __STL_DEFAULT_TYPE_PARAM
# undef __STL_NAMESPACES
# undef __STL_UNINITIALIZABLE_PRIVATE
# define __STL_UNINITIALIZABLE_PRIVATE 1
# define __STL_BASE_TYPEDEF_OUTSIDE_BUG 1
# undef __STL_CONST_CONSTRUCTOR_BUG
# define __STL_CONST_CONSTRUCTOR_BUG 1
#endif
// Microsoft Visual C++ 4.0, 4.1, 4.2, 5.0
# if defined(_MSC_VER)
// comment this one to try experimantal allocator
// # define __STL_USE_NEWALLOC 1
# undef __STL_BOOL_KEYWORD
# undef __STL_UNINITIALIZABLE_PRIVATE
# undef __STL_BASE_MATCH_BUG
# undef __STL_DEFAULT_TEMPLATE_PARAM
# ifdef _CPPUNWIND
# define __STL_USE_EXCEPTIONS
# endif
# if defined ( _MT )
# define __STL_WIN32THREADS
# endif
# if ( _MSC_VER>=1000 )
# define __STL_NAMESPACES 1
# define __STL_NEW_STYLE_CASTS 1
# undef __STL_CONST_CONSTRUCTOR_BUG
# define __STL_CONST_CONSTRUCTOR_BUG 1
# define __STL_LONG_DOUBLE 1
# if ( _MSC_VER<=1010 )
// "bool" is reserved in MSVC 4.1 while <yvals.h> absent, so :
# define __STL_RESERVED_BOOL_KEYWORD 1
# define __STL_USE_ABBREVS 1
# else
# define __STL_YVALS_H 1
# define __STL_BAD_ALLOC_DEFINED 1
# endif
# endif
# if (_MSC_VER >= 1100) // MSVC 5.0
# define __STL_DEFAULT_TEMPLATE_PARAM 1
# define __STL_TYPENAME 1
# define __STL_EXPLICIT 1
# define __STL_MUTABLE 1
# endif
# endif
// Borland C++ ( 5.x )
# if defined ( __BORLANDC__ )
# undef __STL_UNINITIALIZABLE_PRIVATE
# undef __STL_DEFAULT_TEMPLATE_PARAM
# if ( __BORLANDC__ < 0x500 )
# undef __STL_BOOL_KEYWORD
# undef __STL_NAMESPACES
# undef __STL_DEFAULT_TEMPLATE_PARAM
# undef __STL_NESTED_TYPE_PARAM_BUG
# undef __STL_BASE_MATCH_BUG
# define __STL_NESTED_TYPE_PARAM_BUG 1
# define __STL_BASE_MATCH_BUG 1
# else
# define __STL_BOOL_KEYWORD 1
# define __STL_DEFAULT_TYPE_PARAM 1
# define __STL_NAMESPACES 1
# define __STL_EXPLICIT 1
# define __STL_TYPENAME 1
# define __STL_USE_EXCEPTIONS 1
# define __STL_NEW_STYLE_CASTS
# define __STL_LONG_DOUBLE 1
# define __STL_MUTABLE 1
# define __STL_WCHAR_T 1
# define __STL_NEW_HEADER_NAMES 1
# undef __STL_CONST_CONSTRUCTOR_BUG
# define __STL_CONST_CONSTRUCTOR_BUG 1
# endif
# undef __STL_LOOP_INLINE_PROBLEMS
# define __STL_LOOP_INLINE_PROBLEMS 1
// empty exception spec make things worse in BC, so:
# undef __STL_EXCEPTION_SPEC
# endif
# if defined(__SUNPRO_CC)
# if ( __SUNPRO_CC <= 0x420 )
// SUNPro C++ 4.1 and above
# undef __STL_BOOL_KEYWORD
# undef __STL_DEFAULT_TEMPLATE_PARAM
# undef __STL_NAMESPACES
# define __STL_USE_EXCEPTIONS 1
# undef __STL_EXCEPTION_SPEC
# define __STL_EXCEPTION_SPEC 1
# undef __STL_UNINITIALIZABLE_PRIVATE
# define __STL_UNINITIALIZABLE_PRIVATE 1
# define __STL_LONG_LONG 1
# define __STL_WCHAR_T 1
// SUNPro C++ prior to 4.1
# if ( __SUNPRO_CC < 0x410 )
// hard times ;(
# define __STL_BASE_MATCH_BUG 1
# define __STL_BASE_TYPEDEF_BUG 1
# if ( __SUNPRO_CC < 0x401 )
__GIVE_UP_WITH_STL(SUNPRO_401)
# endif
# else
# if ( __SUNPRO_CC >= 0x420 )
# define __STL_FULL_SPEC_SYNTAX 1
# endif
# endif
# endif
# endif
// g++ 2.7.x and above
# if defined (__GNUC__ )
# undef __STL_UNINITIALIZABLE_PRIVATE
# define __STL_BOOL_KEYWORD 1
// cygnus have a lot of version, let's assume the best.
// no specific definitions known except this one
# if defined (__CYGWIN32__)
# define __CYGNUS_GCC__
# endif
# if ! ( __GNUC__ > 2 || __GNUC_MINOR__ > 7 || defined (__CYGNUS_GCC__) )
// Will it work with 2.6 ? I doubt it.
# if ( __GNUC_MINOR__ < 7 )
__GIVE_UP_WITH_STL(GCC_272);
# endif
# undef __STL_NAMESPACES
# undef __STL_DEFAULT_TEMPLATE_PARAM
# define __STL_DEFAULT_TYPE_PARAM 1
# undef __STL_STATIC_TEMPLATE_DATA
# define __STL_NESTED_TYPE_PARAM_BUG 1
# undef __STL_STATIC_TEMPLATE_DATA
# define __STL_BASE_MATCH_BUG 1
// unused operators are required (forward)
# undef __STL_EXPLICIT
# define __STL_EXPLICIT 1
# undef __STL_UNINITIALIZABLE_PRIVATE
# define __STL_UNINITIALIZABLE_PRIVATE 1
# undef __STL_CONST_CONSTRUCTOR_BUG
# undef __STL_LONG_LONG
# undef __STL_WCHAR_T
# define __STL_LONG_LONG 1
# define __STL_WCHAR_T 1
# define __STL_MUTABLE 1
# define __STL_NEW_STYLE_CASTS 1
// default for gcc-2.7.2 is no exceptions, let's follow it
# endif /* __GNUC__ > 2 */
// cygnus gcc may be as advanced as that
# if defined ( __CYGNUS_GCC__ )
# undef __STL_DEFAULT_TEMPLATE_PARAM
# define __STL_DEFAULT_TEMPLATE_PARAM 1
# undef __STL_STATIC_TEMPLATE_DATA
# define __STL_STATIC_TEMPLATE_DATA 1
# undef __STL_NAMESPACES
# define __STL_EXPLICIT 1
# define __STL_TYPENAME 1
# endif
// static template data members workaround strategy for gcc tries
// to use weak symbols.
// if you don't want to use that, #define __STL_WEAK_ATTRIBUTE=0 ( you'll
// have to put "#define __PUT_STATIC_DATA_MEMBERS_HERE" line in one of your
// compilation unit ( or CFLAGS for it ) _before_ including any STL header ).
# if !(defined (__STL_STATIC_TEMPLATE_DATA) || defined (__STL_WEAK_ATTRIBUTE ))
// systems using GNU ld or format that supports weak symbols
// may use "weak" attribute
// Linux & Solaris ( x86 & SPARC ) are being auto-recognized here
# if defined(__STL_GNU_LD) || defined(__ELF__) || \
(( defined (__SVR4) || defined ( __svr4__ )) && \
( defined (sun) || defined ( __sun__ )))
# define __STL_WEAK_ATTRIBUTE 1
# endif
# endif /* __STL_WEAK_ATTRIBUTE */
# endif /* __GNUC__ */
# if defined (__WATCOM_CPLUSPLUS__)
# if (__WATCOM_CPLUSPLUS__ >= 1100 )
// Can define if you enable /xs compiler option
//# if 0
//# define __STL_EXCEPTIONS 1
//# define __STL_EXCEPTION_SPEC 1
//# else
//# undef __STL_EXCEPTIONS
//# undef __STL_EXCEPTION_SPEC
//# endif
# define __STL_NESTED_TYPE_PARAM_BUG 1
# define __STL_BOOL_KEYWORD 1
# undef __STL_DEFAULT_TEMPLATE_PARAM
# define __STL_STATIC_TEMPLATE_DATA 1
# define __STL_EXPLICIT 1
# undef __STL_BASE_MATCH_BUG
# undef __STL_BASE_TYPEDEF_BUG
# define __STL_BASE_TYPEDEF_OUTSIDE_BUG 1
# undef __STL_UNINITIALIZABLE_PRIVATE
# define __STL_CONST_CONSTRUCTOR_BUG 1
# define __STL_NEW_HEADER_NAMES 1
# define __STL_LONG_DOUBLE 1
# define __STL_MUTABLE 1
# define __STL_NEW_STYLE_CASTS 1
# undef __STL_UNUSED_REQUIRED_BUG
# endif
# endif /* __WATCOM_CPLUSPLUS__ */
# undef __GIVE_UP_WITH_STL
#endif // __STLCOMP_H
|