int (int (-2) / unsigned (2)) = 2147483647 без предупреждения - PullRequest
0 голосов
/ 01 октября 2011

У меня есть код, подобный этому:

template<typename Ta, typename Tb> Ta doStuff(Ta a, Tb b)
{
    ...
    return a/b;
}

Как видно из заголовка, такой код будет возвращать неправильные значения с Ta = int Tb = unsigned.

Есть ли способ получитьпредупреждение от g ++ для этого случая?

Ответы [ 2 ]

4 голосов
/ 01 октября 2011

Да.Используйте -Wsign-conversion параметр:

[nawaz@./]$ g++ filename.cpp -Wsign-conversion
0 голосов
/ 01 октября 2011

Попробуйте с помощью: g ++ -Wall code.cpp -o вывод

...