| /*************************************************************************** |
| * |
| * _config-acc.h - HP aC++ configuration definitions |
| * |
| * This is an internal header file used to implement the C++ Standard |
| * Library. It should never be #included directly by a program. |
| * |
| * $Id$ |
| * |
| *************************************************************************** |
| * |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed |
| * with this work for additional information regarding copyright |
| * ownership. The ASF licenses this file to you under the Apache |
| * License, Version 2.0 (the "License"); you may not use this file |
| * except in compliance with the License. You may obtain a copy of |
| * the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or |
| * implied. See the License for the specific language governing |
| * permissions and limitations under the License. |
| * |
| * Copyright 1994-2008 Rogue Wave Software, Inc. |
| * |
| **************************************************************************/ |
| |
| // _REENTRANT is defined by the -mt compiler option |
| |
| // accommodate aCC 1.xx (HP-UX 10.xx), aCC 3.xx (HP-UX 11/PA-RISC) |
| // and aCC 5.xx (HP-UX 11/IA64) |
| #define _RWSTD_HP_aCC_MAJOR (__HP_aCC / 10000) |
| #define _RWSTD_HP_aCC_MINOR (__HP_aCC % 10000) |
| |
| // new C++ libc headers supported |
| #undef _RWSTD_NO_NEW_HEADER |
| |
| #ifndef _RWSTD_NO_PURE_C_HEADERS |
| // disable for now |
| # define _RWSTD_NO_PURE_C_HEADERS |
| #endif // _RWSTD_NO_PURE_C_HEADERS |
| |
| // deprecated C++ libc headers don't introduce names into namespace std |
| #ifndef _RWSTD_NO_DEPRECATED_LIBC_IN_STD |
| # define _RWSTD_NO_DEPRECATED_LIBC_IN_STD |
| #endif |
| |
| // deprecated C++ libc headers aren't used |
| #define _RWSTD_NO_DEPRECATED_C_HEADERS |
| |
| // prevents Error (future) 553: Expected type arguments to follow |
| // class template name. |
| #define _RWSTD_REDUNDANT_TMPL_PARAMS |
| |
| #if (_RWSTD_HP_aCC_MINOR < 3300) && !defined (_RWSTD_NO_MBSTATE_T) |
| // mbstate_t definition is guarded in _mbstate_t.h and is available |
| // only if _INCLUDE__STDC_A1_SOURCE is defined (i.e., with -AA) |
| # define _RWSTD_NO_MBSTATE_T |
| #endif |
| |
| #if defined (_HP_NAMESPACE_STD) || defined (_NAMESPACE_STD) |
| # undef _RWSTD_NO_RUNTIME_IN_STD |
| # undef _RWSTD_NO_STD_BAD_TYPEID |
| # undef _RWSTD_NO_STD_TYPE_INFO |
| #endif |
| |
| #ifndef _RWSTD_NO_BAD_ALLOC_WHAT |
| // avoid the following ld errors: |
| // Unsatisfied symbol "Class tables [Vtable] dependent on |
| // key function: "bad_alloc::what() const"" in file [*.o] |
| // Unsatisfied symbol "typeid<bad_alloc>" in file [*.o] |
| # define _RWSTD_NO_BAD_ALLOC_WHAT |
| #endif // _RWSTD_NO_BAD_ALLOC_WHAT |
| |
| #if __HP_aCC < 60000 |
| # ifndef _RWSTD_NO_EXTERN_TEMPLATE |
| # ifndef _RWSTD_NO_STRING_NPOS_TYPE |
| // define the type of basic_string::npos to be size_t |
| // instead of basic_string::size_type to work around |
| // an HP aCC extern template bug #333 (only the HP |
| // front end has this bug; HP aCC 6.0 which uses the |
| // EDG front end works fine |
| # define _RWSTD_NO_STRING_NPOS_TYPE |
| # endif // _RWSTD_NO_STRING_NPOS_TYPE |
| # endif // _RWSTD_NO_EXTERN_TEMPLATE |
| #endif // aCC < 6.0 |
| |
| #ifdef __HPACC_NOEH |
| // disable exceptions when the macro __HPACC_NOEH |
| // is #defined by the compiler, e.g., when the |
| // +noeh option is used |
| # ifndef _RWSTD_NO_EXCEPTIONS |
| # define _RWSTD_NO_EXCEPTIONS |
| # endif // _RWSTD_NO_EXCEPTIONS |
| #endif // __HPACC_NOEH |
| |
| #if 6 <= _RWSTD_HP_aCC_MAJOR |
| // aCC 6 attribute((noreturn)) to indicate that a function |
| // doesn't return (it may exit by throwing an exception) |
| # define _RWSTD_ATTRIBUTE_NORETURN __attribute__ ((noreturn)) |
| #endif // aCC >= 6 |
| |