$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
From: Black Ice (yg-boost-users_at_[hidden])
Date: 2003-01-05 20:43:15
Thanks
--
/*******************/
自由(liberty)无非就是这样一种承诺:每个人将会得到一种保障,保障我们可以与
权威、多数、流俗及舆论的影响相抗衡。
/*******************/
"Jeff Garland" <jeff_at_[hidden]> 写入消息新闻
:jUsT.aNoTheR.mEsSaGe.iD.10416929881593_at_crystalclearsoftware.com...
>
>
>
> > After I move the line 'using std namespace', the error still occurs.
> > The error occurs in file date_time/time_duration.hpp, line 66.
> > min_type minutes() const
> > {
> > return std::abs(((ticks() / (60*rep_type::res_adjust())) % 60));
> > }
> >
>
> It seems like the abs function declared in
boost/date_time/compiler_config.
> hpp
> will not be included due to the macro configuration. The relavant
> code snippet
> is:
>
> //boost/date_time/compiler_config.hpp
> //Work around compilers that don't have std::abs
> #if (__GNUC__ <= 3)|| (defined(BOOST_MSVC) && _MSC_VER <= 1200)
> # define BOOST_NO_LONG_LONG_ABS
> #endif
>
> #if defined(BOOST_NO_LONG_LONG_ABS)
> namespace std
> {
> template <typename T> // JDG [7/6/02 made a template]
> inline T abs(T x)
> {
> return x < 0 ? -x : x;
> }
> }
> #endif
>
> You might try altering this so that the function will be defined.
> Something like (line 22)
>
> #if (__GNUC__ <= 3)|| defined(BOOST_MSVC)
>
> should do the trick. The only thing is that past testing with
> newer versions of MSVC did not require this so I'm a bit suprised
> that this is needed. This will only work if the problem is that
> the compiler is trying to convert the underlying type boost::int64_t
> into a long or another type because it lacks a std::abs for
> this type.
>
> Jeff
>
>
>
>
>
>
>
>
> Info: <http://www.boost.org>
> Wiki: <http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl>
> Unsubscribe: <mailto:boost-users-unsubscribe_at_[hidden]>
>
>
> Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
>
>
>