作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
是否有编译器标志在任何隐式转换(如 int32_t 到 uint32_t)的情况下记录警告/错误。
#include <cstdint>
#include <iostream>
using ::std::int32_t;
using ::std::uint32_t;
int main(int argc, char *argv[])
{
int32_t x = 9;
uint32_t i = x;
std::cout << " " << x << " " << i << std::flush << std::endl;
return 0;
}
c++ -std=c++11 -Wall -Wconversion -Wpedantic cast.cpp
我在编译期间没有遇到任何问题/警告/错误 - 有没有办法可以实现。
最佳答案
uint32_t i = x;
Signed int 类型到 unsigned int 类型的转换在 C++ 中有明确的定义。
(C++11,§4.7 ¶2)
If the destination type is unsigned, the resulting value is the least unsigned integer congruent to the source integer (modulo 2n where n is the number of bits used to represent the unsigned type). [ Note: In a two’s complement representation, this conversion is conceptual and there is no change in the bit pattern (if there is no truncation). — end note ]
关于C++ - 所有隐式转换的编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49104679/
我是一名优秀的程序员,十分优秀!