// Distributed under the Boost Software License, Version 1.0.
// See accompanying file LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt
//
// Used to support configuration options depending on standalone context
// by providing either required support or disabling functionality
#ifndef BOOST_MP_STANDALONE_CONFIG_HPP
#define BOOST_MP_STANDALONE_CONFIG_HPP
#include<climits>
// Boost.Config is dependency free so it is considered a requirement to use Boost.Multiprecision in standalone mode
#ifdef __has_include
# if __has_include(<boost/config.hpp>)
# include <boost/config.hpp>
# include <boost/config/workaround.hpp>
# else
# error "Boost.Config is considered a requirement to use Boost.Multiprecision in standalone mode. A package is provided at https://github.com/boostorg/multiprecision/releases"
# endif
#else
// Provides the less helpful fatal error: 'boost/config.hpp' file not found if not available
# include <boost/config.hpp>
# include <boost/config/workaround.hpp>
#endif
// Minimum language standard transition
#ifdef _MSVC_LANG
# if _MSVC_LANG < 201402L
# pragma warning("The minimum language standard to use Boost.Math will be C++14 starting in July 2023 (Boost 1.82 release)");
# endif
#else
# if __cplusplus < 201402L
# warning "The minimum language standard to use Boost.Math will be C++14 starting in July 2023 (Boost 1.82 release)"
# endif
#endif
// If any of the most frequently used boost headers are missing assume that standalone mode is supposed to be used