Re: [Boost-bugs] [Boost C++ Libraries] #1715: gcc-4.3 doesn't compile polymorphic_(i)(o)archive.hpp

Subject: Re: [Boost-bugs] [Boost C++ Libraries] #1715: gcc-4.3 doesn't compile polymorphic_(i)(o)archive.hpp
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2008-03-31 16:38:33


#1715: gcc-4.3 doesn't compile polymorphic_(i)(o)archive.hpp
-----------------------------------------------------------+----------------
  Reporter: Maik Beckmann <Beckmann.Maik_at_[hidden]> | Owner: ramey
      Type: Bugs | Status: reopened
 Milestone: To Be Determined | Component: serialization
   Version: Boost Development Trunk | Severity: Showstopper
Resolution: | Keywords:
-----------------------------------------------------------+----------------
Changes (by Maik Beckmann <Beckmann.Maik_at_[hidden]>):

  * status: closed => reopened
  * resolution: fixed =>

Comment:

 Your code
 {{{
 #if defined(BOOST_NO_INT64_T)
     #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
 }}}
 doesn't work, since if BOOST_NO_INT64_T isn't defined ULONG_MAX isn't even
 considerd. I guess you want
 {{{
 #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
 }}}
 but I prefer
 {{{
 #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
         #error "ULONG_MAX is not defined"
     #endif
 #endif
 }}}
 or
 {{{
 #if defined(BOOST_NO_INT64_T)
     #define BOOST_NO_INTRINSIC_INT64_T
 #elif defined(ULONG_MAX)
     #if(ULONG_MAX != 0xffffffff && ULONG_MAX == 18446744073709551615u) //
 2**64 - 1
         #define BOOST_NO_INTRINSIC_INT64_T
     #endif
 #else
     #error "ULONG_MAX is not defined"
 #endif
 }}}

--
Ticket URL: <http://svn.boost.org/trac/boost/ticket/1715#comment:3>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.


This archive was generated by hypermail 2.1.7 : 2017-02-16 18:49:57 UTC