Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r60268 - trunk/boost/serialization
From: ramey_at_[hidden]
Date: 2010-03-06 21:37:54


Author: ramey
Date: 2010-03-06 21:37:54 EST (Sat, 06 Mar 2010)
New Revision: 60268
URL: http://svn.boost.org/trac/boost/changeset/60268

Log:
improve portability for 64 bit integers
Text files modified:
   trunk/boost/serialization/array.hpp | 2 --
   trunk/boost/serialization/collection_traits.hpp | 27 ++++-----------------------
   2 files changed, 4 insertions(+), 25 deletions(-)

Modified: trunk/boost/serialization/array.hpp
==============================================================================
--- trunk/boost/serialization/array.hpp (original)
+++ trunk/boost/serialization/array.hpp 2010-03-06 21:37:54 EST (Sat, 06 Mar 2010)
@@ -134,8 +134,6 @@
   ar & boost::serialization::make_nvp("elems",a.elems);
 }
 
-
-
 } } // end namespace boost::serialization
 
 #ifdef __BORLANDC__

Modified: trunk/boost/serialization/collection_traits.hpp
==============================================================================
--- trunk/boost/serialization/collection_traits.hpp (original)
+++ trunk/boost/serialization/collection_traits.hpp 2010-03-06 21:37:54 EST (Sat, 06 Mar 2010)
@@ -27,6 +27,7 @@
 #include <boost/mpl/integral_c_tag.hpp>
 
 #include <boost/cstdint.hpp>
+#include <boost/integer_traits.hpp>
 #include <climits> // ULONG_MAX
 #include <boost/serialization/level.hpp>
 
@@ -47,30 +48,10 @@
     /**/
 #endif
 
-// determine if its necessary to handle (u)int64_t specifically
-// 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)
- #define BOOST_NO_INTRINSIC_INT64_T
-#else
- #if defined(ULLONG_MAX)
- #if(ULONG_MAX == 18446744073709551615ul) // 2**64 - 1
- #define BOOST_NO_INTRINSIC_INT64_T
- #endif
- #elif defined(ULONG_MAX)
- #if(ULONG_MAX != 0xffffffff && ULONG_MAX == 18446744073709551615ul) // 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)
+#if defined(BOOST_HAS_LONG_LONG)
     #define BOOST_SERIALIZATION_COLLECTION_TRAITS_HELPER_INT64(C) \
- BOOST_SERIALIZATION_COLLECTION_TRAITS_HELPER(boost::int64_t, C) \
- BOOST_SERIALIZATION_COLLECTION_TRAITS_HELPER(boost::uint64_t, C) \
+ BOOST_SERIALIZATION_COLLECTION_TRAITS_HELPER(boost::long_long_type, C) \
+ BOOST_SERIALIZATION_COLLECTION_TRAITS_HELPER(boost::ulong_long_type, C) \
     /**/
 #else
     #define BOOST_SERIALIZATION_COLLECTION_TRAITS_HELPER_INT64(C)


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk