Hi Aleksey For warning levels >= 2 the attached program produces the given warning. AFAICT, the code in advance.hpp should be correct, so this has low priority. However, to avoid the warning, the if_ expression should probably be replaced with its apply_if equivalent.
Thanks, Andreas --------------------------------------------------------------------------- #include <boost/mpl/list.hpp> #include <boost/mpl/distance.hpp> #include <boost/mpl/advance.hpp> namespace mpl = boost::mpl; typedef mpl::list< int > my_list; typedef mpl::distance< mpl::begin< my_list >::type, mpl::end< my_list >::type >::type my_distance; typedef mpl::advance< mpl::begin< my_list >::type, my_distance >::type my_iter; int main() { return 0; } --------------------------------------------------------------------------- D:\Data\Private\boostCvsRoot\boost\boost\mpl\negate.hpp(36) : warning C4146: unary minus operator applied to unsigned type, result still unsigned D:\Data\Private\boostCvsRoot\boost\boost\mpl\advance.hpp(51) : see reference to class template instantiation 'boost::mpl::negate<T>' being compiled with [ T=my_distance ] D:\Data\Private\boostCvsRoot\boost\boost\mpl\advance.hpp(78) : see reference to class template instantiation 'boost::mpl::aux::advance_impl<Category,Iterator,N>' being compiled with [ Category=boost::mpl::list_iterator<boost::mpl::list<int>::type>::category, Iterator=boost::mpl::begin<my_list>::type, N=my_distance ] TestPartial.cpp(11) : see reference to class template instantiation 'boost::mpl::advance<Iterator,N>' being compiled with [ Iterator=boost::mpl::begin<my_list>::type, N=my_distance ] --------------------------------------------------------------------------- _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost