[Boost-bugs] [Boost C++ Libraries] #8644: Regression in alternative enum based implementation

Subject: [Boost-bugs] [Boost C++ Libraries] #8644: Regression in alternative enum based implementation
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2013-06-03 17:14:21


#8644: Regression in alternative enum based implementation
----------------------------------------------+-----------------------------
 Reporter: Kohei Takahashi <flast@…> | Owner: johnmaddock
     Type: Bugs | Status: new
Milestone: Boost 1.54.0 | Component: static_assert
  Version: Boost Release Branch | Severity: Regression
 Keywords: |
----------------------------------------------+-----------------------------
 It seems to be wrong definition of alternative enum based implementation,
 which is introduced at [82886].

 After [82886]:

 {{{
 #else
 // alternative enum based implementation:
 # ifndef BOOST_NO_CXX11_VARIADIC_MACROS
 # define BOOST_STATIC_ASSERT( ... ) \
          enum { BOOST_JOIN(boost_static_assert_enum_, __LINE__) \
             = sizeof(::boost::STATIC_ASSERTION_FAILURE< (bool)(
 __VA_ARGS__ ) >) }
 # else
          enum { BOOST_JOIN(boost_static_assert_enum_, __LINE__) \
             = sizeof(::boost::STATIC_ASSERTION_FAILURE< (bool)( B ) >) }
 # endif
 #endif
 #endif // defined(BOOST_NO_CXX11_STATIC_ASSERT)
 }}}

 But should be this:
 {{{#!diff
  #else
  // alternative enum based implementation:
  # ifndef BOOST_NO_CXX11_VARIADIC_MACROS
  # define BOOST_STATIC_ASSERT( ... ) \
           enum { BOOST_JOIN(boost_static_assert_enum_, __LINE__) \
              = sizeof(::boost::STATIC_ASSERTION_FAILURE< (bool)(
 __VA_ARGS__ ) >) }
  # else
 +# define BOOST_STATIC_ASSERT( B ) \
           enum { BOOST_JOIN(boost_static_assert_enum_, __LINE__) \
              = sizeof(::boost::STATIC_ASSERTION_FAILURE< (bool)( B ) >) }
  # endif
  #endif
  #endif // defined(BOOST_NO_CXX11_STATIC_ASSERT)
 }}}

 This bug affects 1.54 release branch.

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/8644>
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:50:13 UTC