Opened 14 years ago
Closed 5 years ago
#2818 closed Bugs (fixed)
boost::posix_time::from_time_t() assumes boost::int32_t == long
| Reported by: | Owned by: | James E. King, III | |
|---|---|---|---|
| Milestone: | Boost 1.67.0 | Component: | date_time |
| Version: | Boost 1.38.0 | 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));
}
Change History (4)
comment:1 by , 6 years ago
comment:2 by , 6 years ago
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.
comment:3 by , 5 years ago
| Milestone: | Boost 1.39.0 → Boost 1.67.0 |
|---|---|
| Owner: | changed from to |
| Status: | new → assigned |
| Version: | Boost Release Branch → Boost 1.38.0 |
Resolved as part of github issue 56:
comment:4 by , 5 years ago
| Resolution: | → fixed |
|---|---|
| Status: | assigned → closed |
Fix merged to master; resolved.
Note:
See TracTickets
for help on using tickets.

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