C++ 哈希弃用警告

2023-11-30

我对 C++ 和一般编程非常陌生,目前正在阅读 Bjarne Stroustrup 的编程:使用 C++ 的原理和实践。我一直收到以下错误

严重性代码 说明 项目文件行错误 C2338 是 已弃用并将被删除。请使用。你可以 定义 _SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS 以确认 您已收到此警告。

我知道头文件 std_lib_facilities.h 使用某种已弃用的函数,但有没有办法绕过这个?看起来它希望我定义“_SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS”,但我不确定如何做到这一点。任何帮助,将不胜感激!!


该警告不是关于“某些功能” - 而是关于整个stdext。而且不只是手摇,要停产了最终,已弃用:它不随 2015 年一起发布。

00 年代初期,C++ 标准的修订工作正在进行中;包括微软在内的不同编译器供应商向委员会提交了提案和原型。为了能够对它们进行测试和评估,微软将其提议的扩展的实现放置在stdext.

最终,委员会选择了要纳入该修订版的内容并发布了技术报告(“TR1”)。预计在 2009 年底之前完成,这被称为“C++0x”,编译器供应商开始在tr1命名空间。最终在 2011 年,该标准最终确定,我们得到了“C++11”及其所有片段。std他们属于哪里。

根据微软的提议,该容器将是std::hash_map,但 C++ 委员会选择使用这个术语unordered_map. std::map是一个有序的容器,stdext::hash_map尽管有这个名字,但事实并非如此。

Microsoft 的编译器在完成完整的 C++11 支持方面速度最慢,标准委员会此后完成了第二个变体 (C++14),并正在开发第三个变体 (C++17)。 Microsoft 即将在 VS2015 中完成 C++11 和 C++14 的大部分工作,但有一些明显的例外情况显然将成为 VS 编译器的主要问题(特别是 constexpr 和模板变量)。

  1. Visual Studio 2015不提供stdext - it's gone.这不是那些“好吧,它最终可能会消失”的案例之一。

  2. stdext特定于 Microsoft 系列编译器,因此使用以下代码编写代码stdext::任何东西都是不可移植的:http://ideone.com/x8GsKY

  3. 您想要的功能的标准化版本是std::unordered_map,你应该使用它。本质上是同一件事。

  4. 存在未解决的错误stdext::hash_map.

如果你真的必须使用stdext::hash_map,通过添加来消除警告

#define _SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS

在顶部stdafx.h我假设你的项目有,或者在你之前的头文件中#include <stdext/...>,或在解决方案资源管理器中:

  • 右键单击解决方案资源管理器中的项目条目,
  • 选择属性,
  • 选择配置:All Configurations,
  • 展开C/C++树入口,
  • Select Preprocessor,
  • “预处理器定义”可能会说<different options>
  • 在“预处理器定义”条目的开头添加_SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS=1;所以它读作_SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS=1;<different options>。 (或者最初存在的任何内容都应该遵循;)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ 哈希弃用警告 的相关文章

随机推荐

  • Angular 2 中的 XML 数据解析

    我是 angularjs2 和 typescript 的新手 在我的项目中 我有一个包含 xml 作为字符串的字符串变量 我需要处理该字符串并根据 XML 中的节点访问字符串中的数据 我在谷歌搜索方面遇到了困难 请帮助我出去
  • 在 Spring Boot 中动态更改 application.properties 值

    目前我正在 Spring Boot 中开发一个基于 REST 的项目 我已在 application properties 文件中添加了 api url i e 应用程序属性 api base url http localhost 8080
  • 等k子集算法

    有谁知道相等 k 子集算法的良好且有效的算法吗 最好是 c 或 c 可以处理 100 个元素向量 可能具有复杂性和时间估计 前任 9元向量 x 2 4 5 6 8 9 11 13 14 我需要生成所有 k 3 不相交子集 总和 24 该算法
  • toString() Java 中的泛型类型

    如何打印通用 java 类型的类型 反射 有什么技巧吗 public class Foo
  • OpenSSL 和 OpenMP 的多线程程序段错误

    我在 C 多线程程序中使用 OpenSSL 并遇到问题 所以我写了一个小程序来尝试缩小问题的范围 除了主函数之外的函数都是从https github com plenluno openssl blob master openssl cryp
  • Linux 下 C++ Promise.set_value 失败并出现未知错误

    我正在尝试让我的模拟在我们的高性能服务器上运行 它 不幸的是 使用 CentOS Linux 版本 7 7 1908 核心 而不是我正在开发程序的 Win10 随之而来的是大量错误 其中一个我无法修复 include
  • 如何使用 Python 写入 Excel 电子表格?

    我需要将程序中的一些数据写入 Excel 电子表格 我在网上搜索过 似乎有很多可用的软件包 xlwt XlsXcessive openpyxl 其他人建议写入 csv 文件 从未使用过 CSV 也不太明白它是什么 该程序非常简单 我有两个列
  • 使用 grep 提取 html 文件的标题

    cat 1 html grep
  • 如何在 Android Studio 中覆盖/更新 Jama Matrix 而不会出现任何错误?

    Jama 矩阵在我的代码中定义 矩阵计算类 如下 private Matrix A private Matrix B private Matrix C 矩阵A初始化如下 A new Matrix 2 2 A set 0 0 1 5 A se
  • 使用部分显式排序然后再进行另一个排序?

    我需要的是以自定义方式订购列表 我正在研究正确的方式并找到了 guava 的订购 api 但问题是我订购的列表并不总是相同的 我只需要2 个字段位于列表顶部 例如我有这个 List
  • 如何绕过 gitlab-runner 要求输入 sudo 命令的密码或 gitlab-runners 的默认密码是什么

    我是 gitlab runner 的新手 并尝试自动化我的项目 以便每当发布新标签时 它都应该构建一个新的 deb 包 PS 我用的是mac 下列的thisgitlab 的官方链接来完成我的任务 我的第一个 gitlab ci yml 文件
  • jquery连续运动动画

    连续运动 我想在上面的网站中重新创建卡车时刻 这是在 mootools 中完成的 我该如何编码 是否有 jQuery 插件可以做到这一点 因此 从屏幕的开始到结束为对象设置动画 然后重新开始 我该如何做这个 jQuery 任何帮助将不胜感激
  • Sparkr 将 DF 写入文件 csv/txt

    你好 我正在纱线模式下开发 SparkR 我需要将 Sparkr df 写入 csv txt 文件 我看到有write df但它会写入镶木地板文件 我尝试做这些事情 RdataFrame lt collect SparkRDF write
  • CircleCI 中的 Terraform 销毁失败

    我目前使用 CircleCI 作为我的 CI 工具来使用 Terraform 构建 AWS 基础设施 我的流程是 使用 Terraform 创建 AWS 实例 安装 Docker 并在其上运行 Nginx 镜像 破坏基础设施 我的 Circ
  • '' 的错误冲突类型是什么意思?

    我收到一条错误消息 错误 的类型冲突 这是什么意思 快速解决 确保您的函数在调用之前声明一次且仅声明一次 例如 更改 main myfun 3 4 double myfun double x return x To double myfun
  • 使用 netcat 和 grep 有条件地运行命令

    我需要 netcat 来侦听传入的 HTTP 请求 并且根据请求 我需要运行一个脚本 到目前为止我有这个 netcat lk 12345 grep Keep Alive 因此 每次 netcat 收到包含 keep alive 的包时 我都
  • 在 Delphi XE5/Android 平台上播放声音警报/蜂鸣声

    有没有办法在Delphi XE5 Android平台上播放声音警报 蜂鸣声 我想要实现的是如何使用 Beep 功能像 Windows 应用程序一样播放系统警报 蜂鸣声 或者至少找到系统音频文件的路径 以便我可以根据事件运行特定的音频文件 我
  • Kafka Connect-在写入接收器之前修改记录

    我已经使用 confluence 4 0 0 安装了 Kafka connect 使用 hdfs 连接器 我可以将从 Kafka 主题收到的 Avro 记录保存到配置单元 我想知道在写入hdfs接收器之前是否有任何方法可以修改记录 我的要求
  • 如何从 Javascript 提示框获取值并将其传递到 PHP 变量以便能够保存在 SQL 中?

    这是我的问题 我希望我的脚本能够做到这一点 在用户拒绝条目 服务器端 之前 系统必须提示文本框询问拒绝的原因 然后将他们输入的原因保存到MySQL服务器 JavaScript 函数 function MyReason var reason
  • C++ 哈希弃用警告

    我对 C 和一般编程非常陌生 目前正在阅读 Bjarne Stroustrup 的编程 使用 C 的原理和实践 我一直收到以下错误 严重性代码 说明 项目文件行错误 C2338 是 已弃用并将被删除 请使用 你可以 定义 SILENCE S