c++ - 如果尝试将负数分配给未签名的容器,是否有导致编译错误的方法?

标签 c++ compiler-errors g++

有没有一种方法可以防止 this question 中的代码生成二进制文件? ?理想情况下是通过编译时的错误。问题的示例代码:

unsigned int nVal = 0;
nVal = -5;  // no error!

最佳答案

如果您使用的是 g++,开关 -Wsign-conversion 将对转换发出警告,而 -Werror 将使该警告成为错误。

关于c++ - 如果尝试将负数分配给未签名的容器,是否有导致编译错误的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7484464/

相关文章:

c++ - 使用辅助函数 (c++) 定义运行时已知的全局常量变量

c - 我现在应该担心 gcc -pedantic 选项吗?

c# - 自建的Node <T>\List <T>类到系统节点和列表之间的C#模糊引用

c++ - boost 错误:变量 ‘timespec rqtp’具有初始化程序,但类型不完整

c++ - 问题 : Getting buffer data

c++ - 使用嵌套模板变量解决 Visual Studio 内部编译器错误

C++ boost 错误 : cannot convert const value type* (aka const wchar_t*) to const char* in initialization

intellij-idea - Intellij IDEA Scala测试-编译错误,但在sbt中可以

c++ - 如何在 Visual Studio 2008 中设置 GNU G++ 编译器

c++ - OpenCV 3.4.3 中对 `cv::String::deallocate()' 错误的 undefined reference