diff --git a/boost/archive/polymorphic_iarchive.hpp b/boost/archive/polymorphic_iarchive.hpp index 8a61e56..ad8c591 100644 --- a/boost/archive/polymorphic_iarchive.hpp +++ b/boost/archive/polymorphic_iarchive.hpp @@ -17,6 +17,7 @@ // See http://www.boost.org for updates, documentation, and revision history. #include // std::size_t +#include // ULONG_MAX #include #if defined(BOOST_NO_STDC_NAMESPACE) @@ -38,9 +39,16 @@ namespace std{ // i.e. that its not a synonym for (unsigned) long // if there is no 64 bit int or if its the same as a long // we shouldn't define separate functions for int64 data types. -#if defined(BOOST_NO_INT64_T) \ - || (ULONG_MAX != 0xffffffff && ULONG_MAX == 18446744073709551615u) // 2**64 - 1 -# define BOOST_NO_INTRINSIC_INT64_T +#if defined(BOOST_NO_INT64_T) + #define BOOST_NO_INTRINSIC_INT64_T +#else + #if defined(ULONG_MAX) + #if(ULONG_MAX != 0xffffffff && ULONG_MAX == 18446744073709551615u) // 2**64 - 1 + #define BOOST_NO_INTRINSIC_INT64_T + #endif + #else + #define BOOST_NO_INTRINSIC_INT64_T + #endif #endif namespace boost { diff --git a/boost/archive/polymorphic_oarchive.hpp b/boost/archive/polymorphic_oarchive.hpp index 7fbd911..576f957 100644 --- a/boost/archive/polymorphic_oarchive.hpp +++ b/boost/archive/polymorphic_oarchive.hpp @@ -17,6 +17,7 @@ // See http://www.boost.org for updates, documentation, and revision history. #include // size_t +#include // ULONG_MAX #include #include @@ -37,11 +38,19 @@ namespace std{ // i.e. that its not a synonym for (unsigned) long // if there is no 64 bit int or if its the same as a long // we shouldn't define separate functions for int64 data types. -#if defined(BOOST_NO_INT64_T) \ - || (ULONG_MAX != 0xffffffff && ULONG_MAX == 18446744073709551615u) // 2**64 - 1 -# define BOOST_NO_INTRINSIC_INT64_T +#if defined(BOOST_NO_INT64_T) + #define BOOST_NO_INTRINSIC_INT64_T +#else + #if defined(ULONG_MAX) + #if(ULONG_MAX != 0xffffffff && ULONG_MAX == 18446744073709551615u) // 2**64 - 1 + #define BOOST_NO_INTRINSIC_INT64_T + #endif + #else + #define BOOST_NO_INTRINSIC_INT64_T + #endif #endif + namespace boost { template class shared_ptr; diff --git a/boost/serialization/collection_traits.hpp b/boost/serialization/collection_traits.hpp index 349fe91..f55bc38 100644 --- a/boost/serialization/collection_traits.hpp +++ b/boost/serialization/collection_traits.hpp @@ -29,6 +29,8 @@ #include #include +#include // ULONG_MAX + #define BOOST_SERIALIZATION_COLLECTION_TRAITS_HELPER(T, C) \ template<> \ struct implementation_level< C < T > > { \ @@ -50,9 +52,16 @@ struct implementation_level< C < T > > { \ // i.e. that its not a synonym for (unsigned) long // if there is no 64 bit int or if its the same as a long // we shouldn't define separate functions for int64 data types. -#if defined(BOOST_NO_INT64_T) \ - || (ULONG_MAX != 0xffffffff && ULONG_MAX == 18446744073709551615u) // 2**64 - 1 -# define BOOST_NO_INTRINSIC_INT64_T +#if defined(BOOST_NO_INT64_T) + #define BOOST_NO_INTRINSIC_INT64_T +#else + #if defined(ULONG_MAX) + #if(ULONG_MAX != 0xffffffff && ULONG_MAX == 18446744073709551615u) // 2**64 - 1 + #define BOOST_NO_INTRINSIC_INT64_T + #endif + #else + #define BOOST_NO_INTRINSIC_INT64_T + #endif #endif #if !defined(BOOST_NO_INTRINSIC_INT64_T)