On FreeBSD 8.1 with boost 1.43 and gcc 4.2.1 we have lots of warnings like:
... /usr/local/include/boost/type_traits/is_unsigned.hpp: In instantiation of 'boost::detail::is_ununsigned_helper<short int>': /usr/local/include/boost/type_traits/is_unsigned.hpp:73: instantiated from 'boost::detail::is_unsigned_imp<short int>' /usr/local/include/boost/type_traits/is_unsigned.hpp:123: instantiated from 'boost::is_unsigned<short int>' /usr/local/include/boost/type_traits/make_unsigned.hpp:110: instantiated from 'boost::detail::make_unsigned_imp<short int>' /usr/local/include/boost/type_traits/make_unsigned.hpp:130: instantiated from 'boost::make_unsigned<short int>' /usr/local/include/boost/lexical_cast.hpp:846: instantiated from here /usr/local/include/boost/type_traits/is_unsigned.hpp:40: warning: comparison between 'enum boost::detail::is_unsigned_values<short int>::<anonymous>' and 'enum boost::detail::is_unsigned_values<short int>::<anonymous>'
I'm not able to reproduce that with cygwin-gcc-4.3.4 and -Wall -Wextra -pedantic and either Boost-1.44 or 1.43, do you have a minimal test case? It also looks to me that maybe BOOST_NO_INCLASS_MEMBER_INITIALIZATION is defined given that the warning talks about enum's - however this should never be the case with gcc. Confused yours, John.