| // -*- C++ -*- |
| /*************************************************************************** |
| * |
| * climits - C++ Standard library interface to the ANSI C header limits.h |
| * |
| * $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. |
| * |
| **************************************************************************/ |
| |
| #ifndef _RWSTD_CLIMITS_INCLUDED |
| #define _RWSTD_CLIMITS_INCLUDED |
| |
| #include <rw/_defs.h> |
| |
| |
| #if !defined (_RWSTD_NO_PURE_C_HEADERS) || defined (_RWSTD_NO_LIMITS_H) |
| |
| // 18.2.2, p1 |
| #ifndef CHAR_BIT |
| # define CHAR_BIT _RWSTD_CHAR_BIT |
| #endif // CHAR_BIT |
| |
| #ifndef CHAR_MAX |
| # define CHAR_MAX _RWSTD_CHAR_MAX |
| #endif // CHAR_MAX |
| |
| #ifndef CHAR_MIN |
| # define CHAR_MIN _RWSTD_CHAR_MIN |
| #endif // CHAR_MIN |
| |
| #ifndef SCHAR_MAX |
| # define SCHAR_MAX _RWSTD_SCHAR_MAX |
| #endif // SCHAR_MAX |
| |
| #ifndef SCHAR_MIN |
| # define SCHAR_MIN _RWSTD_SCHAR_MIN |
| #endif // SCHAR_MIN |
| |
| #ifndef UCHAR_MAX |
| # define UCHAR_MAX _RWSTD_UCHAR_MAX |
| #endif // UCHAR_MAX |
| |
| #ifndef SHRT_MAX |
| # define SHRT_MAX _RWSTD_SHRT_MAX |
| #endif // SHRT_MAX |
| |
| #ifndef SHRT_MIN |
| # define SHRT_MIN _RWSTD_SHRT_MIN |
| #endif // SHRT_MIN |
| |
| #ifndef USHRT_MAX |
| # define USHRT_MAX _RWSTD_USHRT_MAX |
| #endif // USHRT_MAX |
| |
| #ifndef INT_MAX |
| # define INT_MAX _RWSTD_INT_MAX |
| #endif // INT_MAX |
| |
| #ifndef INT_MIN |
| # define INT_MIN _RWSTD_INT_MIN |
| #endif // INT_MIN |
| |
| #ifndef UINT_MAX |
| # define UINT_MAX _RWSTD_UINT_MAX |
| #endif // UINT_MAX |
| |
| #ifndef LONG_MAX |
| # define LONG_MAX _RWSTD_LONG_MAX |
| #endif // LONG_MAX |
| |
| #ifndef LONG_MIN |
| # define LONG_MIN _RWSTD_LONG_MIN |
| #endif // LONG_MIN |
| |
| #ifndef ULONG_MAX |
| # define ULONG_MAX _RWSTD_ULONG_MAX |
| #endif // ULONG_MAX |
| |
| #ifndef MB_LEN_MAX |
| # define MB_LEN_MAX _RWSTD_MB_LEN_MAX |
| #endif // MB_LEN_MAX |
| |
| #else // if defined (_RWSTD_NO_PURE_C_HEADERS) |
| |
| # ifdef __GNUC__ |
| # if __GNUC__ >= 3 |
| // silence gcc warnings about #include_next below |
| # pragma GCC system_header |
| # endif // gcc >= 3 |
| |
| // use the gcc extension to #include the compiler's limits.h |
| # include_next <limits.h> |
| # else |
| # include _RWSTD_ANSI_C_LIMITS_H |
| # endif // gcc |
| |
| #endif // _RWSTD_NO_PURE_C_HEADERS |
| |
| #if (MB_LEN_MAX != _RWSTD_MB_LEN_MAX) |
| # undef MB_LEN_MAX |
| # define MB_LEN_MAX _RWSTD_MB_LEN_MAX |
| #endif // MB_LEN_MAX |
| |
| #endif // _RWSTD_CLIMITS_INCLUDED |