This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: -Wconversion versus libstdc++


Paolo Carlini wrote:
[...]
Let's wait a bit more for other opinions, say one day or two, then I will start the actual work. As far as I can see, other compilers do not warn in such cases, and adding casts (*) isn't the cleanest practice in the world, thus my caution...

FYI: HP aCC warns for some but not all of these types of lossy initializations. For example, a double to int conversion emits a warning but ptrdiff_t to size_t or other signed to unsigned conversions do not, probably because they're so common. I find this behavior useful.

Martin

$ cat t.cpp && aCC -AA -V -c +w t.cpp
int foo (double d)
{
    const int i = d;
    return i;
}

aCC: HP ANSI C++ B3910B A.03.70
Warning (suggestion) 819: "t.cpp", line 3 # Initialization of type 'int' with 'double' may result in truncation of value.
const int i = d;
^
Warning (suggestion) 818: "t.cpp", line 3 # Type 'double' is larger than type 'int', truncation in value may result.
const int i = d;
^



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]