Hi, (possible duplicate, but I think the original was rejected 'cause
of a mail alias. If not, please forgive the noise.)
I'm using boost 1.32 posix_time in some code that is intended to be
portable (MS VC7.1 / Solaris gcc 3.3.1 / RHLinux gcc 3.3.1).
When I build with VC 7.1.3088 on Windows XP Pro SP2 get warnings about
integer trunction (see below).
I can duplicate it by compiling a cpp file containing a single line:
#include "boost/date_time/posix_time/posix_time.hpp"
and I can work around it by:
#ifdef _MSC_VER
#pragma warning(push)
#pragma warning(disable:4244) // boost/posix_time has truncation
warnings
#endif // _MSC_VER
#include "boost/date_time/posix_time/posix_time.hpp" //include all
types plus i/o
#ifdef _MSC_VER
#pragma warning(pop)
#endif // _MSC_VER
but this might hide real problems (or this might *BE* a real problem -- I haven't really
looked into the difference between a
boost::date_time::counted_time_rep<config>::int_type. and a
boost::date_time::gregorian_calendar_base<ymd_type_,date_int_type_>::date_int_type
Suggestions?
Dale
The warnings:
c:\Boost\include\boost-1_32\boost\date_time\time_system_counted.hpp(57)
: warning C4244: 'initializing' : conversion from
'boost::date_time::counted_time_rep<config>::int_type' to
'boost::date_time::gregorian_calendar_base<ymd_type_,date_int_type_>::date_int_type',
possible loss of data
with
[
config=boost::posix_time::millisec_posix_time_system_config
]
and
[
ymd_type_=boost::gregorian::greg_year_month_day,
date_int_type_=boost::date_time::int_adapter<unsigned
long>::int_type
]
c:\Boost\include\boost-1_32\boost\date_time\time_system_counted.hpp(52)
: while compiling class-template member function
'boost::date_time::counted_time_rep<config>::date_type
boost::date_time::counted_time_rep<config>::date(void) const'
with
[
config=boost::posix_time::millisec_posix_time_system_config
]
c:\Boost\include\boost-1_32\boost\date_time\time_system_counted.hpp(111)
: see reference to class template instantiation
'boost::date_time::counted_time_rep<config>' being compiled
with
[
config=boost::posix_time::millisec_posix_time_system_config
]
c:\Boost\include\boost-1_32\boost\date_time\time.hpp(52) : see
reference to class template instantiation
'boost::date_time::counted_time_system<time_rep>' being compiled
with
[
time_rep=boost::posix_time::int64_time_rep
]
c:\Boost\include\boost-1_32\boost\date_time\posix_time\ptime.hpp(32) :
see reference to class template instantiation
'boost::date_time::base_time<T,time_system>' being compiled
with
[
T=boost::posix_time::ptime,
time_system=boost::posix_time::posix_time_system
]
c:\Boost\include\boost-1_32\boost\date_time\date_parsing.hpp(211) :
warning C4244: 'argument' : conversion from
'std::allocator<_Ty>::value_type' to 'char', possible loss of
data
with
[
_Ty=wchar_t
]
c:\Boost\include\boost-1_32\boost\date_time\date_parsing.hpp(253) : see
reference to function template instantiation 'date_type
boost::date_time::from_stream_type<date_type,std::basic_string<_Elem,_Traits,_Ax>::iterator>(iterator_type
&,iterator_type &,wchar_t)' being compiled
with
[
date_type=boost::gregorian::date,
_Elem=wchar_t,
_Traits=std::char_traits<wchar_t>,
_Ax=std::allocator<wchar_t>,
iterator_type=std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>::iterator
]
c:\Boost\include\boost-1_32\boost\date_time\gregorian\parsers.hpp(78) :
see reference to function template instantiation
'boost::date_time::period<point_rep,duration_rep>
boost::date_time::from_simple_string_type<boost::gregorian::date,wchar_t>(const
std::basic_string<_Elem,_Traits,_Ax> &)' being compiled
with
[
point_rep=boost::gregorian::date,
duration_rep=boost::gregorian::date_duration,
_Elem=wchar_t,
_Traits=std::char_traits<wchar_t>,
_Ax=std::allocator<wchar_t>
]
--
-----------------------------------------------------
Dale Wilson, Senior Software Engineer
Object Computing, Inc. (OCI)
http://www.ociweb.com/ http://www.theaceorb.com/
----------------------------------------------------