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