1 /* Boost interval/detail/bugs.hpp file 2 * 3 * Copyright 2000 Jens Maurer 4 * Copyright 2002 Hervé Brönnimann, Guillaume Melquiond, Sylvain Pion 5 * 6 * Distributed under the Boost Software License, Version 1.0. 7 * (See accompanying file LICENSE_1_0.txt or 8 * copy at http://www.boost.org/LICENSE_1_0.txt) 9 */ 10 11 #ifndef BOOST_NUMERIC_INTERVAL_DETAIL_BUGS 12 #define BOOST_NUMERIC_INTERVAL_DETAIL_BUGS 13 14 #include <boost/config.hpp> 15 16 #if defined(__GLIBC__) && (defined(__USE_MISC) || defined(__USE_XOPEN_EXTENDED) || defined(__USE_ISOC99)) && !defined(__ICC) 17 # define BOOST_HAS_INV_HYPERBOLIC 18 #endif 19 20 #ifdef BOOST_NO_STDC_NAMESPACE 21 # define BOOST_NUMERIC_INTERVAL_using_math(a) using ::a 22 # ifdef BOOST_HAS_INV_HYPERBOLIC 23 # define BOOST_NUMERIC_INTERVAL_using_ahyp(a) using ::a 24 # endif 25 #else 26 # define BOOST_NUMERIC_INTERVAL_using_math(a) using std::a 27 # if defined(BOOST_HAS_INV_HYPERBOLIC) 28 # if defined(__GLIBCPP__) || defined(__GLIBCXX__) 29 # define BOOST_NUMERIC_INTERVAL_using_ahyp(a) using ::a 30 # else 31 # define BOOST_NUMERIC_INTERVAL_using_ahyp(a) using std::a 32 # endif 33 # endif 34 #endif 35 36 #if defined(__COMO__) || defined(BOOST_INTEL) 37 # define BOOST_NUMERIC_INTERVAL_using_max(a) using std::a 38 #elif defined(BOOST_NO_STDC_NAMESPACE) 39 # define BOOST_NUMERIC_INTERVAL_using_max(a) using ::a 40 #else 41 # define BOOST_NUMERIC_INTERVAL_using_max(a) using std::a 42 #endif 43 44 #ifndef BOOST_NUMERIC_INTERVAL_using_ahyp 45 # define BOOST_NUMERIC_INTERVAL_using_ahyp(a) 46 #endif 47 48 #endif // BOOST_NUMERIC_INTERVAL_DETAIL_BUGS 49