Opened 14 years ago

Closed 13 years ago

#2824 closed Bugs (fixed)

constant boost::date_time::time_resolution_traits::ticks_per_second has wrong type

Reported by: pelee@… Owned by: az_sw_dude
Milestone: Boost 1.39.0 Component: date_time
Version: Boost Release Branch Severity: Problem
Keywords: Cc:

Description

The constant boost::date_time::time_resolution_traits::ticks_per_second is declared as an int, yet it is initialized to the template parameter resolution_adjust, which is of type frac_sec_type::int_type or boost::int64_t depending on compiler settings. When building for a 64 bit target this causes the constant value to be truncated to 32 bits. To fix this, the declaration of ticks_per_second should be made consistent with the declaration of resolution_adjust:

#if (defined(BOOST_MSVC) && (_MSC_VER < 1300))
    BOOST_STATIC_CONSTANT(boost::int64_t, ticks_per_second = resolution_adjust);
#else
    BOOST_STATIC_CONSTANT(fractional_seconds_type, ticks_per_second = resolution_adjust);
#endif

Change History (1)

comment:1 by Andrey Semashev, 13 years ago

Resolution: fixed
Status: newclosed

(In [53678]) Fixes #2824.

Note: See TracTickets for help on using tickets.