隐式转换的 gcc 警告标志

2024-02-13

我最近遇到了一个与下一个类似的错误:

double getSomeValue()
{
    return 4.0;
}
...
std::string str;
str = getSomeValue();

正如您所看到的,很容易发现问题,但在大型代码库中getSomeValue()与调用代码不在同一个文件中,可能很难发现这一点double to std::string无声转换。 GCC 可以很好地编译这段代码-Wall -Wextra -Werror(这里的示例输出,我不知道使用了什么警告标志:http://ideone.com/BTXBFk http://ideone.com/BTXBFk).

我如何强制 GCC 对这些危险的隐式转换发出警告?我试过-Wconversion,但它非常严格,并且在大多数包含的标头中会导致常见情况的错误,例如unsigned - 1。有没有弱一点的版本-Wconversion?


您可以使用-Wfloat-conversion旗帜,或更广泛的-Wconversion.

但请注意,对于 C++11统一初始化大括号语法,您会收到“开箱即用”的警告,而无需-Wconversion旗帜;例如。:

#include <string>

double getSomeValue() {
    return 4.0;
}

int main() {   
    std::string str{ getSomeValue() }; // C++11 brace-init
}
C:\Temp\CppTests>g++ -std=c++11 test.cpp
test.cpp: In function 'int main()':
test.cpp:8:35: warning: narrowing conversion of 'getSomeValue()' from 'double' t
o 'char' inside { } [-Wnarrowing]
     std::string str{ getSomeValue() };
                                   ^
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

隐式转换的 gcc 警告标志 的相关文章

  • 创建 DirectoryEntry 实例以供测试使用

    我正在尝试创建 DirectoryEntry 的实例 以便可以使用它来测试将传递 DirectoryEntry 的一些代码 然而 尽管进行了很多尝试 我还是找不到实例化 DE 并初始化它的 PropertyCollection 的方法 我有
  • C++:无法使用scoped_allocator_adaptor传播polymorphic_allocator

    我有一个vector
  • 自动从 C# 代码进行调试过程并读取寄存器值

    我正在寻找一种方法来读取某个地址的 edx 注册表 就像这个问题中所问的那样 读取eax寄存器 https stackoverflow com questions 16490906 read eax register 虽然我的解决方案需要用
  • fgets() 和 Ctrl+D,三次才能结束?

    I don t understand why I need press Ctrl D for three times to send the EOF In addition if I press Enter then it only too
  • 为什么禁止在 constexpr 函数中使用 goto?

    C 14 对你能做什么和不能做什么有规则constexpr功能 其中一些 没有asm 没有静态变量 看起来相当合理 但标准也不允许goto in constexpr功能 即使它允许其他控制流机制 这种区别背后的原因是什么 我以为我们已经过去
  • 如何在 WPF RichTextBox 中跟踪 TextPointer?

    我正在尝试了解 WPF RichTextBox 中的 TextPointer 类 我希望能够跟踪它们 以便我可以将信息与文本中的区域相关联 我目前正在使用一个非常简单的示例来尝试弄清楚发生了什么 在 PreviewKeyDown 事件中 我
  • 使用 C# 在 WinRT 中获取可用磁盘空间

    DllImport kernel32 dll SetLastError true static extern bool GetDiskFreeSpaceEx string lpDirectoryName out ulong lpFreeBy
  • 如何针对 Nancy 中的 Active Directory 进行身份验证?

    这是一篇过时的文章 但是http msdn microsoft com en us library ff650308 aspx paght000026 step3 http msdn microsoft com en us library
  • 基于范围的 for 循环中的未命名循环变量?

    有没有什么方法可以不在基于范围的 for 循环中 使用 循环变量 同时也避免编译器发出有关未使用它的警告 对于上下文 我正在尝试执行以下操作 我启用了 将警告视为错误 并且我不想进行像通过在某处毫无意义地提及变量来强制 使用 变量这样的黑客
  • 按字典顺序对整数数组进行排序 C++

    我想按字典顺序对一个大整数数组 例如 100 万个元素 进行排序 Example input 100 21 22 99 1 927 sorted 1 100 21 22 927 99 我用最简单的方法做到了 将所有数字转换为字符串 非常昂贵
  • 使用向量的 merge_sort 在少于 9 个输入的情况下效果很好

    不知何故 我使用向量实现了合并排序 问题是 它可以在少于 9 个输入的情况下正常工作 但在有 9 个或更多输入的情况下 它会执行一些我不明白的操作 如下所示 Input 5 4 3 2 1 6 5 4 3 2 1 9 8 7 6 5 4 3
  • 编译的表达式树会泄漏吗?

    根据我的理解 JIT 代码在程序运行时永远不会从内存中释放 这是否意味着重复调用 Compile 表达式树上会泄漏内存吗 这意味着仅在静态构造函数中编译表达式树或以其他方式缓存它们 这可能不那么简单 正确的 他们可能是GCed Lambda
  • 网络参考共享类

    我用 Java 编写了一些 SOAP Web 服务 在 JBoss 5 1 上运行 其中两个共享一个类 AddressTO Web 服务在我的 ApplycationServer 上正确部署 一切都很顺利 直到我尝试在我的 C 客户端中使用
  • EPPlus Excel 更改单元格颜色

    我正在尝试将给定单元格的颜色设置为另一个单元格的颜色 该单元格已在模板中着色 但worksheet Cells row col Style Fill BackgroundColor似乎没有get财产 是否可以做到这一点 或者我是否必须在互联
  • 如何构建印度尼西亚电话号码正则表达式

    这些是一些印度尼西亚的电话号码 08xxxxxxxxx 至少包含 11 个字符长度 08xxxxxxxxxxx 始终以 08 开头 我发现这个很有用 Regex regex new Regex 08 0 9 0 9 0 9 0 9 0 9
  • 方法参数内的变量赋值

    我刚刚发现 通过发现错误 你可以这样做 string s 3 int i int TryParse s hello out i returns false 使用赋值的返回值是否合法 Obviously i is but is this th
  • Bing 地图运行时错误 Windows 8.1

    当我运行带有 Bing Map 集成的 Windows 8 1 应用程序时 出现以下错误 Windows UI Xaml Markup XamlParseException 类型的异常 发生在 DistanceApp exe 中 但未在用户
  • 将变量分配给另一个变量,并将一个变量的更改反映到另一个变量中

    是否可以将一个变量分配给另一个变量 并且当您更改第二个变量时 更改会瀑布式下降到第一个变量 像这样 int a 0 int b a b 1 现在 b 和 a 都 1 我问这个问题的原因是因为我有 4 个要跟踪的对象 并且我使用名为 curr
  • 将 viewbag 从操作控制器传递到部分视图

    我有一个带有部分视图的 mvc 视图 控制器中有一个 ActionResult 方法 它将返回 PartialView 因此 我需要将 ViewBag 数据从 ActionResult 方法传递到 Partial View 这是我的控制器
  • 不同类型的指针可以互相分配吗?

    考虑到 T1 p1 T2 p2 我们可以将 p1 分配给 p2 或反之亦然吗 如果是这样 是否可以不使用强制转换来完成 或者我们必须使用强制转换 首先 让我们考虑不进行强制转换的分配 C 2018 6 5 16 1 1 列出了简单赋值的约束

随机推荐

  • 如何为 mvc 应用程序中的所有控制器启用 ssl

    我有一个 MVC 5 应用程序 并且安装了 ssl 证书 现在正在使用 https 连接 但在我的代码中 我必须在 homecontroller 上设置 requirehttps 属性 如下所示 RequireHttps public cl
  • 使用命令行选项在 mplayer 中播放视频的特定间隔

    我正在使用 mplayer 播放视频 我想知道是否有命令行选项可以在 mplayer 中播放视频的特定间隔 例如 如果我想播放一个 56 秒的视频文件 持续时间为 3 秒 那么命令行选项是什么 我知道 ss 选项会寻找特定位置 但如何指定我
  • 当脚本作为 cronjob 运行时,python 脚本在导入语句处停止

    我使用 cron 每 30 分钟执行一个 python 脚本 但它在 import 语句处停止 我不明白为什么 因为我没有得到任何反馈 在我的 crontab 中我有 30 sh exec script sh 文件exec script s
  • 我们如何从Google Direction API默认获得从A点到B点的最短距离路线

    我们如何从 Google Direction API 建议的替代路线中默认获得从 A 点到 B 点的最短距离路线 默认情况下 它会根据当前的交通状况为我们提供最短持续时间的路线 我注意到 如果您打开 provideRouteAlternat
  • 使用和不使用 Set 关键字之间的类型差异

    我刚刚解决了一个问题 我将 Set 关键字放在定义行中 但我想知道的是 为什么 基本上 我正在这样做 Dim startCell iCell as Range For Each iCell in Range whatever If iCel
  • 什么是*确定性并发*?

    我听说有3种并发 确定性并发 消息传递并发 共享状态并发 我知道 2 演员模型 和 3 通用线程 但不知道 1 那是什么 确定性并发是一种并发编程模型 在此模型中编写的程序具有以下属性 对于给定的一组输入 程序的输出值对于任何执行计划都是相
  • C++ typedef 类的使用

    为什么要使用一个typedef class Name 我在IBM C 文档 http publib boulder ibm com infocenter comphelp v7v91 index jsp topic com ibm vacp
  • powershell 鼠标移动不会阻止空闲模式

    System Windows Forms Cursor Position New Object System Drawing Point pos X pos Y 1 System Windows Forms Cursor Position
  • OpenCV 全屏窗口

    我正在尝试使用 opencv 2 3 创建一个全屏窗口 但它不起作用 但我记得 它应该起作用 代码非常简单 cvNamedWindow 名称 CV WINDOW FULLSCREEN 我也尝试设置窗口属性 cvSetWindowProper
  • AWS API Gateway DynamoDB GetItem 没有排序键?

    我有一个 Dynamodb 表 其中包含以下内容 primary key S series sort key S type of brokers title S Types Of Brokers primary key S series s
  • Jquery Datatables - 使整行成为链接

    这也许很简单 但似乎无法弄清楚 使用 jquery 数据表如何使每一行可单击以链接到普通页面 因此 如果有人将鼠标悬停在任何一行上 则整行将突出显示并可单击 并链接到我希望它在单击时链接到的任何网址 我用过fnDrawCallbackjQu
  • Oracle 变异触发器

    我正在编写一个简单的触发器 它应该只发送一条消息 其中包含更新的行数以及性别的旧值和性别的更新值 然而 当我运行更新时 我收到错误 表明表正在发生变化 并且表可能无法看到它 但我不确定为什么 trigger create or replac
  • 如何设置 Pyomo 求解器超时?

    如何设置 Pyomosolve 方法的超时 更具体地说 告诉 pyomo 在 x 秒后 返回当前找到的最优解 所以我能够通过 pyomo 文档找到答案 我认为分享会有所帮助 设置 Pyomo 的超时时间solve method solver
  • 非对称密钥容器的相互转换(例如:X.509、PGP、OpenSSH)

    非对称加密密钥基本上可以在主要密钥容器格式之间相互转换吗 例如 我可以将 X 509 密钥文件转换为 PGP 或 OpenGPG 密钥文件吗 并且 假设答案是肯定的 以任何格式保存一对密钥并转换为该场合所需的任何容器文件格式是否 安全中立
  • 如何在emacs语义中包含标准jdk库?

    我使用的是 Emacs 23 2 这是我加载语义的方式 setq semantic default submodes global semantic idle scheduler mode global semanticdb minor m
  • R中glmnet中的岭回归;使用 glmnet 包计算不同 lambda 值的 VIF

    我有一组多重共线性变量 我正在尝试使用岭回归来解决这个问题 我正在使用glmnetR 中的包 alpha 0 用于岭回归 library glmnet 我有一系列 lambda 值 并且我通过 cv glmnet 选择最佳 lambda 值
  • ListView 列的最小宽度

    我怎样才能指定MinWidthWPF 中的 Listview 列 此代码使用 Thumb 控件 它将阻止用户仅将标题拖动到指定的宽度 将其添加到您的 WPF 中
  • 如何在 React 中实现 Cloudinary 上传小部件?

    我正在尝试在我的 React 应用程序中使用 Cloudinary 上传小部件 但我遇到了问题 运行项目时 上传小部件会立即出现 但是当关闭并再次打开时 应用程序崩溃并显示以下消息 widget open 不是一个函数 Note 上传工作正
  • 如何使用异步回调进行同步操作?

    如何用异步函数进行同步操作 class MyClass static let shared MyClass let operationQueue OperationQueue let dispatchGroup DispatchGroup
  • 隐式转换的 gcc 警告标志

    我最近遇到了一个与下一个类似的错误 double getSomeValue return 4 0 std string str str getSomeValue 正如您所看到的 很容易发现问题 但在大型代码库中getSomeValue 与调