96 lines · plain
1// Copyright (c) 2020 John Maddock2// Use, modification and distribution are subject to the3// Boost Software License, Version 1.0. (See accompanying file4// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)5 6#ifndef BOOST_MATH_TOOLS_CXX03_WARN_HPP7#define BOOST_MATH_TOOLS_CXX03_WARN_HPP8 9#include <boost/math/tools/config.hpp>10 11#if defined(BOOST_NO_CXX11_NOEXCEPT)12# define BOOST_MATH_SHOW_CXX03_WARNING13# define BOOST_MATH_CXX03_WARN_REASON "BOOST_NO_CXX11_NOEXCEPT"14#endif15#if defined(BOOST_NO_CXX11_NOEXCEPT) && !defined(BOOST_MATH_SHOW_CXX03_WARNING)16# define BOOST_MATH_SHOW_CXX03_WARNING17# define BOOST_MATH_CXX03_WARN_REASON "BOOST_NO_CXX11_NOEXCEPT"18#endif19#if defined(BOOST_NO_CXX11_NOEXCEPT) && !defined(BOOST_MATH_SHOW_CXX03_WARNING)20# define BOOST_MATH_SHOW_CXX03_WARNING21# define BOOST_MATH_CXX03_WARN_REASON "BOOST_NO_CXX11_NOEXCEPT"22#endif23#if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(BOOST_MATH_SHOW_CXX03_WARNING)24# define BOOST_MATH_SHOW_CXX03_WARNING25# define BOOST_MATH_CXX03_WARN_REASON "BOOST_NO_CXX11_RVALUE_REFERENCES"26#endif27#if defined(BOOST_NO_SFINAE_EXPR) && !defined(BOOST_MATH_SHOW_CXX03_WARNING)28# define BOOST_MATH_SHOW_CXX03_WARNING29# define BOOST_MATH_CXX03_WARN_REASON "BOOST_NO_SFINAE_EXPR"30#endif31#if defined(BOOST_NO_CXX11_AUTO_DECLARATIONS) && !defined(BOOST_MATH_SHOW_CXX03_WARNING)32# define BOOST_MATH_SHOW_CXX03_WARNING33# define BOOST_MATH_CXX03_WARN_REASON "BOOST_NO_CXX11_AUTO_DECLARATIONS"34#endif35#if defined(BOOST_NO_CXX11_LAMBDAS) && !defined(BOOST_MATH_SHOW_CXX03_WARNING)36# define BOOST_MATH_SHOW_CXX03_WARNING37# define BOOST_MATH_CXX03_WARN_REASON "BOOST_NO_CXX11_LAMBDAS"38#endif39#if defined(BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX) && !defined(BOOST_MATH_SHOW_CXX03_WARNING)40# define BOOST_MATH_SHOW_CXX03_WARNING41# define BOOST_MATH_CXX03_WARN_REASON "BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX"42#endif43#if defined(BOOST_NO_CXX11_HDR_TUPLE) && !defined(BOOST_MATH_SHOW_CXX03_WARNING)44# define BOOST_MATH_SHOW_CXX03_WARNING45# define BOOST_MATH_CXX03_WARN_REASON "BOOST_NO_CXX11_HDR_TUPLE"46#endif47#if defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST) && !defined(BOOST_MATH_SHOW_CXX03_WARNING)48# define BOOST_MATH_SHOW_CXX03_WARNING49# define BOOST_MATH_CXX03_WARN_REASON "BOOST_NO_CXX11_HDR_INITIALIZER_LIST"50#endif51#if defined(BOOST_NO_CXX11_HDR_CHRONO) && !defined(BOOST_MATH_SHOW_CXX03_WARNING)52# define BOOST_MATH_SHOW_CXX03_WARNING53# define BOOST_MATH_CXX03_WARN_REASON "BOOST_NO_CXX11_HDR_CHRONO"54#endif55#if defined(BOOST_NO_CXX11_CONSTEXPR) && !defined(BOOST_MATH_SHOW_CXX03_WARNING)56# define BOOST_MATH_SHOW_CXX03_WARNING57# define BOOST_MATH_CXX03_WARN_REASON "BOOST_NO_CXX11_CONSTEXPR"58#endif59#if defined(BOOST_NO_CXX11_NULLPTR) && !defined(BOOST_MATH_SHOW_CXX03_WARNING)60# define BOOST_MATH_SHOW_CXX03_WARNING61# define BOOST_MATH_CXX03_WARN_REASON "BOOST_NO_CXX11_NULLPTR"62#endif63#if defined(BOOST_NO_CXX11_NUMERIC_LIMITS) && !defined(BOOST_MATH_SHOW_CXX03_WARNING)64# define BOOST_MATH_SHOW_CXX03_WARNING65# define BOOST_MATH_CXX03_WARN_REASON "BOOST_NO_CXX11_NUMERIC_LIMITS"66#endif67#if defined(BOOST_NO_CXX11_DECLTYPE) && !defined(BOOST_MATH_SHOW_CXX03_WARNING)68# define BOOST_MATH_SHOW_CXX03_WARNING69# define BOOST_MATH_CXX03_WARN_REASON "BOOST_NO_CXX11_DECLTYPE"70#endif71#if defined(BOOST_NO_CXX11_HDR_ARRAY) && !defined(BOOST_MATH_SHOW_CXX03_WARNING)72# define BOOST_MATH_SHOW_CXX03_WARNING73# define BOOST_MATH_CXX03_WARN_REASON "BOOST_NO_CXX11_HDR_ARRAY"74#endif75#if defined(BOOST_NO_CXX11_ALLOCATOR) && !defined(BOOST_MATH_SHOW_CXX03_WARNING)76# define BOOST_MATH_SHOW_CXX03_WARNING77# define BOOST_MATH_CXX03_WARN_REASON "BOOST_NO_CXX11_ALLOCATOR"78#endif79#if defined(BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS) && !defined(BOOST_MATH_SHOW_CXX03_WARNING)80# define BOOST_MATH_SHOW_CXX03_WARNING81# define BOOST_MATH_CXX03_WARN_REASON "BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS"82#endif83 84#ifdef BOOST_MATH_SHOW_CXX03_WARNING85//86// The above list includes everything we use, plus a few we're likely to use soon.87// As from March 2020, C++03 support is deprecated, and as from March 2021 will be removed,88// so mark up as such:89//90// March 2021(mborland): C++03 support has been removed. Replace warning with hard error.91//92#error Support for C++03 has been removed. The minimum requirement for this library is fully compliant C++11.93#endif94 95#endif96