int(int(-2)/unsigned(2)) = 2147483647 无警告
我有一个与此类似的代码:
template<typename Ta, typename Tb> Ta doStuff(Ta a, Tb b)
{
...
return a/b;
}
正如标题所示,此类代码将返回错误的值,其中 Ta=int Tb=unsigned。
对于这种情况,有没有办法让 g++ 发出警告?
I have a code similar to this:
template<typename Ta, typename Tb> Ta doStuff(Ta a, Tb b)
{
...
return a/b;
}
As the title says such code would return wrong values with Ta=int Tb=unsigned.
Is there a way to get a warning by g++ for this case ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
是的。使用
-Wsign-conversion
选项:Yes. Use
-Wsign-conversion
option:尝试使用:
g++ -Wall code.cpp -o 输出
Try with:
g++ -Wall code.cpp -o output