Subject: Re: [boost] [type_traits] warning free is_signed on g++
From: John Maddock (john_at_[hidden])
Date: 2009-09-18 06:35:15
> When using boost::is_signed<> on types such as unsigned int and unsigned
> various recent versions of g++ (MinGW 4.4.0 and Apple's 4.0.1, at least)
> 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) <
> BOOST_STATIC_CONSTANT(bool, value = (static_cast<no_cv_t>(-1) < 1));
> This change gets rid of the warnings emitted by g++.
Already been there and fixed it: