--- boost/config/stdlib/libcpp.hpp.orig 2023-05-02 17:53:04.000000000 +1000 +++ boost/config/stdlib/libcpp.hpp 2023-05-02 19:47:26.000000000 +1000 @@ -166,4 +166,13 @@ # define BOOST_NO_CXX14_HDR_SHARED_MUTEX #endif +#if _LIBCPP_VERSION >= 15000 +// +// Unary function is now deprecated in C++11 and later: +// +#if __cplusplus >= 201103L +#define BOOST_NO_CXX98_FUNCTION_BASE +#endif +#endif + // --- end --- --- boost/numeric/conversion/detail/int_float_mixture.hpp.orig 2023-03-02 21:34:55.000000000 +1100 +++ boost/numeric/conversion/detail/int_float_mixture.hpp 2023-05-02 18:34:05.000000000 +1000 @@ -16,15 +16,15 @@ #include "boost/numeric/conversion/int_float_mixture_enum.hpp" #include "boost/numeric/conversion/detail/meta.hpp" -#include "boost/mpl/integral_c.hpp" +#include "boost/type_traits/integral_constant.hpp" namespace boost { namespace numeric { namespace convdetail { // Integral Constants for 'IntFloatMixture' - typedef mpl::integral_c<int_float_mixture_enum, integral_to_integral> int2int_c ; - typedef mpl::integral_c<int_float_mixture_enum, integral_to_float> int2float_c ; - typedef mpl::integral_c<int_float_mixture_enum, float_to_integral> float2int_c ; - typedef mpl::integral_c<int_float_mixture_enum, float_to_float> float2float_c ; + typedef boost::integral_constant<int_float_mixture_enum, integral_to_integral> int2int_c ; + typedef boost::integral_constant<int_float_mixture_enum, integral_to_float> int2float_c ; + typedef boost::integral_constant<int_float_mixture_enum, float_to_integral> float2int_c ; + typedef boost::integral_constant<int_float_mixture_enum, float_to_float> float2float_c ; // Metafunction: // --- boost/numeric/conversion/detail/sign_mixture.hpp.orig 2023-03-02 21:34:55.000000000 +1100 +++ boost/numeric/conversion/detail/sign_mixture.hpp 2023-05-02 18:35:21.000000000 +1000 @@ -16,15 +16,15 @@ #include "boost/numeric/conversion/sign_mixture_enum.hpp" #include "boost/numeric/conversion/detail/meta.hpp" -#include "boost/mpl/integral_c.hpp" +#include "boost/type_traits/integral_constant.hpp" namespace boost { namespace numeric { namespace convdetail { // Integral Constants for 'SignMixture' - typedef mpl::integral_c<sign_mixture_enum, unsigned_to_unsigned> unsig2unsig_c ; - typedef mpl::integral_c<sign_mixture_enum, signed_to_signed> sig2sig_c ; - typedef mpl::integral_c<sign_mixture_enum, signed_to_unsigned> sig2unsig_c ; - typedef mpl::integral_c<sign_mixture_enum, unsigned_to_signed> unsig2sig_c ; + typedef boost::integral_constant<sign_mixture_enum, unsigned_to_unsigned> unsig2unsig_c ; + typedef boost::integral_constant<sign_mixture_enum, signed_to_signed> sig2sig_c ; + typedef boost::integral_constant<sign_mixture_enum, signed_to_unsigned> sig2unsig_c ; + typedef boost::integral_constant<sign_mixture_enum, unsigned_to_signed> unsig2sig_c ; // Metafunction: // --- boost/numeric/conversion/detail/udt_builtin_mixture.hpp.orig 2023-03-02 21:34:55.000000000 +1100 +++ boost/numeric/conversion/detail/udt_builtin_mixture.hpp 2023-05-02 18:36:25.000000000 +1000 @@ -15,15 +15,15 @@ #include "boost/numeric/conversion/udt_builtin_mixture_enum.hpp" #include "boost/numeric/conversion/detail/meta.hpp" -#include "boost/mpl/integral_c.hpp" +#include "boost/type_traits/integral_constant.hpp" namespace boost { namespace numeric { namespace convdetail { // Integral Constants for 'UdtMixture' - typedef mpl::integral_c<udt_builtin_mixture_enum, builtin_to_builtin> builtin2builtin_c ; - typedef mpl::integral_c<udt_builtin_mixture_enum, builtin_to_udt> builtin2udt_c ; - typedef mpl::integral_c<udt_builtin_mixture_enum, udt_to_builtin> udt2builtin_c ; - typedef mpl::integral_c<udt_builtin_mixture_enum, udt_to_udt> udt2udt_c ; + typedef boost::integral_constant<udt_builtin_mixture_enum, builtin_to_builtin> builtin2builtin_c ; + typedef boost::integral_constant<udt_builtin_mixture_enum, builtin_to_udt> builtin2udt_c ; + typedef boost::integral_constant<udt_builtin_mixture_enum, udt_to_builtin> udt2builtin_c ; + typedef boost::integral_constant<udt_builtin_mixture_enum, udt_to_udt> udt2udt_c ; // Metafunction: // --- boost/mpl/aux_/integral_wrapper.hpp.orig +++ boost/mpl/aux_/integral_wrapper.hpp @@ -56,7 +56,8 @@ struct AUX_WRAPPER_NAME // have to #ifdef here: some compilers don't like the 'N + 1' form (MSVC), // while some other don't like 'value + 1' (Borland), and some don't like // either -#if BOOST_WORKAROUND(__EDG_VERSION__, <= 243) +#if BOOST_WORKAROUND(__EDG_VERSION__, <= 243) \ + || __clang_major__ >= 16 private: BOOST_STATIC_CONSTANT(AUX_WRAPPER_VALUE_TYPE, next_value = BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (N + 1))); BOOST_STATIC_CONSTANT(AUX_WRAPPER_VALUE_TYPE, prior_value = BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (N - 1)));