
Stewart, Robert wrote:
Jürgen Hunold wrote:
I start using Boost.Units for a new project and found some annyoing warnings when compiling with "-Wall -Wextra" and "-Wconversion"
Don't do that and you won't get those warnings! (Just kidding.)
/home/hunold/src/devel/boost/boost/units/io.hpp: In function 'int boost::units::get_flags(std::ios_base&, int)': /home/hunold/src/devel/boost/boost/units/io.hpp:163: warning: conversion to 'int' from 'long int' may alter its value [-Wconversion]
Patch using an explicit static_cast<int> for the return value attached.
Do you know that the long int value can never exceed the range of int? If not, the static_cast will simply mask the problem. It would be better to check against std::numeric_limits<int>::max() before casting, and resort to an exception if the range is exceeded.
IIRC, that's boost::numeric_cast's purpose. Jeff