【发布时间】:2018-03-05 06:32:36
【问题描述】:
是否有一个编译器标志在任何隐式转换(如 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
我在编译期间没有收到任何问题/警告/错误 - 有没有办法可以实现。
【问题讨论】:
-
这可能不是一个很好的例子,因为编译器可以看到
9不会导致转换错误。 -
谢谢 - 我理解你的意思,但是 C++ 编译器有没有办法在这种隐式转换中抛出警告/错误?
标签: c++