【发布时间】:2016-05-13 15:48:45
【问题描述】:
是否可以在 g++ 或 clang 中启用从 int 转换为 int64_t 的警告? 示例:
int n;
cin >> n;
int64_t power = (1 << n);
我希望编译器在第三行告诉我这个转换。
【问题讨论】:
-
为什么你不想在上播时发出警告?
-
第三个语句在语法上无效,请您更正一下吗?
-
我假设您想要警告,因为
(1LL << n)是您真正想要的。 -
@NathanOliver,寻找 Loki Astari 的评论。这是一个常见的错误。当你写
int64_t memory_size = 2 * 1024 * 1024 * 1024;之类的东西并溢出时。但在这种情况下,它会给你一个警告,但在那种情况下,在帖子中 - 没有警告。 -
因为它在很多地方都会自动发生,这样的警告标志会产生很多噪音。所以我认为它在一般情况下没有用。所以我不相信有一个(我确实尝试过谷歌,但没有发现任何有用的东西)。我想你可以创建自己的类来捕捉它。