Opened 14 years ago
Last modified 12 years ago
#2826 new Bugs
constant boost::mpl::aux::template_arity_impl::value causes 64 bit truncation warning
Reported by: | Owned by: | Joel Falcou | |
---|---|---|---|
Milestone: | Boost 1.47.0 | Component: | mpl |
Version: | Boost Release Branch | Severity: | Problem |
Keywords: | Cc: | joel.falcou@… |
Description
When compiled for a 64 bit target, the constant boost::mpl::aux::template_arity_impl::value causes a warning about possible truncation of a 64 bit value to 32 bits. This is because size_t (returned by sizeof()) is 64 bits, while value is declared as an int. One fix would be to declare the constant as a size_t. Instead I added a static_cast on the assumption that it would be less disruptive and the value returned by sizeof() was unlikely to require more than 32 bits.
typename arity_tag<6>::type arity_helper(type_wrapper< F< T1,T2,T3,T4,T5,T6 > >, arity_tag<6>); template< typename F, int N > struct template_arity_impl { BOOST_STATIC_CONSTANT(int, value = static_cast<int>(sizeof(arity_helper(type_wrapper<F>(), arity_tag<N>())) - 1) ); };
Change History (1)
comment:1 by , 12 years ago
Cc: | added |
---|---|
Milestone: | Boost 1.39.0 → Boost 1.47.0 |
Owner: | changed from | to
Note:
See TracTickets
for help on using tickets.
I suspect this bug will be fixed by https://svn.boost.org/trac/boost/ticket/2297 Once I applied this one, I'll take care of resting this. Do you have small repro I can use to cross check this issue ?
Thanks in advance.