xref: /reactos/sdk/include/c++/stlport/stl/config/_hpacc.h (revision 34593d93)
1 /* STLport configuration file
2  * It is internal STLport header - DO NOT include it directly
3  */
4 
5 #define _STLP_COMPILER "aCC"
6 
7 /* system C-library dependent */
8 #if defined (_XOPEN_SOURCE) && (_XOPEN_VERSION - 0 >= 4)
9 #  define _STLP_RAND48 1
10 #endif
11 /* #  define _STLP_RAND48 1 */
12 /* #define _STLP_NO_NATIVE_MBSTATE_T      1 */
13 #define _STLP_HPACC_BROKEN_BUFEND       1
14 #define _STLP_WCHAR_HPACC_EXCLUDE      1
15 
16 /* this was reported to help, just as with SUN CC 4.2 */
17 #define _STLP_INLINE_STRING_LITERAL_BUG
18 
19 /* specific prolog is needed to select correct threads impl */
20 #define _STLP_HAS_SPECIFIC_PROLOG_EPILOG
21 
22 /* HP aCC with +noeh */
23 #ifdef __HPACC_NOEH
24 #  define _STLP_HAS_NO_EXCEPTIONS 1
25 #endif
26 
27 #define _STLP_NO_FORCE_INSTANTIATE
28 #define _STLP_LONG_LONG long long
29 #define _STLP_NO_VENDOR_STDLIB_L
30 
31 /* The aCC6 compiler is using the EDG Front End. Unfortunately, prior to
32  * version A.06.12, defining the __EDG__ and __EDG_VERSION__ macros was
33  * disabled. It was corrected in A.06.12.
34  */
35 #if ((__HP_aCC > 60000) && (__HP_aCC < 61200))
36 #  define __EDG__
37 #  define __EDG_VERSION__ 306
38 #endif
39 
40 #if (__HP_aCC >= 32500 )
41 #  define _STLP_USE_NEW_C_HEADERS
42 
43 #  define _STLP_FORCE_ALLOCATORS(t,a) \
44   typedef typename _Alloc_traits<t,a>::_Orig _STLP_dummy_type1;\
45   typedef typename _STLP_dummy_type1:: _STLP_TEMPLATE rebind<t>::other _STLP_dummy_type2;
46 
47 #  if defined (_HP_NAMESPACE_STD) // option -AA
48 /* from now, we have a full standard lib in namespace std
49  *
50  * -AA indicates that we are compiling against Rogue Wave 2.2.1
51  * STL shipped with the HP aCC compiler. -AA tells the compiler
52  * to use the STL defined in the include_std directory.
53  */
54 #    define _STLP_NATIVE_INCLUDE_PATH ../include_std
55 #  else // option -Aa
56 #    define _STLP_VENDOR_GLOBAL_STD         1
57 #    define _STLP_VENDOR_GLOBAL_CSTD        1
58 #    define _STLP_DONT_THROW_RANGE_ERRORS   1
59 #  endif
60 #endif
61 
62 #if (__HP_aCC >= 31400 && __HP_aCC < 32500)
63 #  define _STLP_FORCE_ALLOCATORS(t,a) \
64 typedef typename _Alloc_traits<t,a>::_Orig _STLP_dummy_type1;\
65 typedef typename _STLP_dummy_type1:: _STLP_TEMPLATE rebind<t>::other _STLP_dummy_type2;
66 #  define _STLP_NO_CWCHAR
67 #  if defined (_NAMESPACE_STD) // option -AA
68 /* from now, we have a full standard lib in namespace std */
69 #    define _STLP_NATIVE_INCLUDE_PATH       ../include_std
70 #  else /* kind of compatibility mode */
71 #    define _STLP_VENDOR_GLOBAL_STD         1
72 #    define _STLP_VENDOR_GLOBAL_CSTD        1
73 #    define _STLP_DONT_THROW_RANGE_ERRORS   1
74 #    define _STLP_NO_ROPE                   1
75 #  endif
76 #endif /* 314 */
77 
78 #if ((__HP_aCC >= 30000 && __HP_aCC < 31400) || (__HP_aCC == 1)) // A.03.13: __HP_aCC == 1
79 
80 #  if (__HP_aCC != 1)
81 #    define _STLP_HAS_NO_NEW_C_HEADERS 1
82 #  endif
83 
84 #  define _STLP_NO_QUALIFIED_FRIENDS       1
85 /* aCC bug ? need explicit args on constructors of partial specialized
86  * classes
87  */
88 #  define _STLP_PARTIAL_SPEC_NEEDS_TEMPLATE_ARGS 1
89 /* ?? fbp : maybe present in some versions ? */
90 #  define _STLP_NO_MEMBER_TEMPLATE_CLASSES 1
91 #  define _STLP_NO_MEMBER_TEMPLATE_KEYWORD 1
92 /* <exception> and stuff is in global namespace */
93 #  define _STLP_VENDOR_GLOBAL_EXCEPT_STD
94 /* fbp : moved here */
95 #  define _STLP_VENDOR_GLOBAL_CSTD        1
96 /* #     define _INCLUDE_HPUX_SOURCE */
97 #  define _XPG4
98 #  define _INCLUDE_XOPEN_SOURCE
99 #  define _INCLUDE_AES_SOURCE
100 #endif
101 
102 #if (__HP_aCC <= 30000 && __HP_aCC >= 12100)
103 /* Special kludge to workaround bug in aCC A.01.23, CR JAGac40634 */
104 #  ifdef _STLP_DEBUG
_STLP_dummy_literal()105 static void _STLP_dummy_literal() { const char *p = "x";}
_STLP_dummy_literal_2()106 static void _STLP_dummy_literal_2() { const char *p = "123456789"; }
_STLP_dummy_literal_3()107 static void _STLP_dummy_literal_3() { const char *p = "123456700000000000000089";}
108 #  endif
109 
110 #  define _STLP_VENDOR_GLOBAL_STD         1
111 #  define _STLP_VENDOR_GLOBAL_CSTD        1
112 #  define _STLP_DONT_THROW_RANGE_ERRORS   1
113 #  define _STLP_STATIC_CONST_INIT_BUG 1
114 #  if (__HP_aCC  < 12700)
115 /* new flag: on most HP compilers cwchar is missing */
116 #    define _STLP_NO_CWCHAR
117 #  endif
118 
119 #  define _STLP_FORCE_ALLOCATORS(t,a) \
120   typedef typename _Alloc_traits<t,a>::_Orig _STLP_dummy_type1;\
121   typedef typename _STLP_dummy_type1:: _STLP_TEMPLATE rebind<t>::other _STLP_dummy_type2;
122 #endif
123 
124 #if __HP_aCC == 1
125 #  define _STLP_BROKEN_USING_IN_CLASS
126 #  define _STLP_USING_BASE_MEMBER
127 #  define _STLP_NO_CWCHAR
128 /* #     define _STLP_NO_WCHAR_T 1 */
129 #endif
130