Boost logo

Boost :

Subject: Re: [boost] [type_traits] warning free is_signed on g++
From: Gottlob Frege (gottlobfrege_at_[hidden])
Date: 2009-09-12 12:02:39


On Sat, Sep 12, 2009 at 10:51 AM, Edd Dawson <lists_at_[hidden]> wrote:
> Hello,
>
> When using boost::is_signed<> on types such as unsigned int and unsigned
> long, various recent versions of g++ (MinGW 4.4.0 and Apple's 4.0.1, at
> least) spit out a warning:
>
>  warning: comparison of unsigned expression < 0 is always false
>
> Would there be any harm in changing boost::detail::is_signed_helper in
> boost/type_traits/is_signed.hpp as follows?
>
>  template <class T>
>  struct is_signed_helper
>  {
>     typedef typename remove_cv<T>::type no_cv_t;
>     // BOOST_STATIC_CONSTANT(bool, value = (static_cast<no_cv_t>(-1) < 0));
>     BOOST_STATIC_CONSTANT(bool, value = (static_cast<no_cv_t>(-1) < 1));
>  };
>

Is it possible for T to be a (strangely) user-defined type? That's
the only way I could see this making a difference.

Tony


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk