Modify

Opened 9 years ago

Last modified 9 months ago

#2818 new Bugs

boost::posix_time::from_time_t() assumes boost::int32_t == long

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

boost::posix_time::from_time_t() uses a static_cast<long> to coerce the argument t to the appropriate type for the function seconds(), which expects a boost::int32_t. On an LP64 platform like MacOS 10.5, long is 64 bits, so this is incorrect and generates a warning about possible truncation. The corrected function should be:

  //! Function that converts a time_t into a ptime.
  inline
  ptime from_time_t(std::time_t t) 
  {
    ptime start(gregorian::date(1970,1,1));
	return start + seconds(static_cast<boost::int32_t>(t));
  }

Attachments (0)

Change History (2)

comment:1 Changed 9 months ago by anonymous

OMG, 8 years old! Any chance to be fixed in this decade?

comment:2 Changed 9 months ago by anonymous

There a fix for this in https://svn.boost.org/trac/boost/ticket/4543. This can be closed as a duplicate of 4543, I believe.

Modify Ticket

Change Properties
Set your email in Preferences
Action
as new The owner will remain az_sw_dude.

Add Comment


E-mail address and name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.