当我提供一个只接受无符号的函数的有符号整数时,有没有办法让GCC提醒我?

rsk*_*k82 3 c++ gcc compiler-errors unsigned-integer

编译时,此代码没有给出警告g++:

unsigned int myFunc(unsigned int integer) {
  return integer;
}
int main() {
  int x = -1;
  std::cout << myFunc(x) << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

它编译得很好,但结果是错误的:4294967295.GCC有没有任何编译器-W*选项?

Ste*_*sop 5

是, -Wsign-conversion

请注意-Wconversion,虽然它适用于C代码,但不会为C++代码启用此警告.