#include<unordered_map>

struct SceneData
{
unordered_map<CString, CString> mConversationWord; //unordered_map<wchar_t, INODE> mEntry; //unordered_map<CString, INODE> mConversationAni; //unordered_map<CString, INODE> mCheckAni; //unordered_map<CString, INODE> mDoor; };

  刚开始用的map,后来想直接用索引找值,于是换成hash_map,没想到时至今日,它已经被微软件废弃了,按着VS2019的提示将头换成unordered_map,并使用该类型。

  不料出现c2280的错误。

观察输出

对CString类,使用 std::hash<_Kty>::hash(const std::hash<_Kty> &) 生成键时,引用的是 _Kty=ATL::CString,而此构造被认为是删除的,并且编译器已经使用 std::hash<_Kty>::hash 生成了键,引用的是 _Kty=ATL::CString。

看来 问题出在 键上,而非 值上。将键换成简单类型后错误提示消失。

在网上看到有使用Union,报相同错误的文章。解决方案是将CString换成简单类型。还有将析构函数权限没有放在公有权限中而报该错误的。

error C2280: 尝试引用已删除的函数的更多相关文章

  1. std::mutex 引起的 C2280 尝试引用已删除的函数

    起因是把之前写的类中的 mutex 使用了(之前注释掉了没用到这个变量); 或者说添加了一个 mutex 变量, 然后 这个类有嵌套在了 其类的 map 中使用, 然后 编译 就报错 ` C2280 ...

  2. 错误 C2280 Union : 尝试引用已删除的函数 以及 警告 C4624 “Grade”: 已将析构函数隐式定义为“已删除”的一种解决方法

    Union 是C/C++语言中的一种结构类型,用于定义可共享内存的数据变量的一种方式,初次使用Union联合体时可能会遇到以下问题: 错误 C2280 Union : 尝试引用已删除的函数 警告 C4 ...

  3. C++Error2208:...尝试引用已删除的函数

    C++Error2208:…尝试引用已删除的函数在使用自己编写的类实例化c++stl容器vector时,调用了vector.erase()方法,结果编译器报了以下错误 错误 C2280 “(类名):: ...

  4. 错误C2280 Union:尝试引用已删除的函数

    在编写Union共用体类型的时候,写了如下代码,在第5行出现错误: #include <iostream> #include <string> using namespace ...

  5. 关于 Visual stdio 编译报错:error MSB6006: “CL.exe”已退出

    网上查看,原因有多种. 1,我自己遇到的是这样的: 环境:VS2019,编译项目 image-master,中间自己重整了原来的目录,移动了很多文件.编译报错:error MSB6006: “CL.e ...

  6. Oracle恢复已删除数据

    Oracle恢复已删除的数据,主要有两种方法:SCN和时间戳. 一.通过SCN恢复删除且已提交的数据 1.获得当前数据库的scn号 select current_scn from v$database ...

  7. 从零开始学C++之从C到C++(二):引用、内联函数inline、四种类型转换运算符

    一.引用 (1).引用是给一个变量起别名 定义引用的一般格式:类型  &引用名 = 变量名: 例如:int a=1; int  &b=a;// b是a的别名,因此a和b是同一个单元 注 ...

  8. Dynamics 365创建用户提示:您正在尝试使用已由其他用户使用的域登录来创建用户。如何解决。

    摘要: 本人微信公众号:微软动态CRM专家罗勇 ,回复287或者20181128可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me ...

  9. 引用、数组引用与指针引用、内联函数inline、四种类型转换运算符

    一.引用 (1).引用是给一个变量起别名 定义引用的一般格式:类型  &引用名 = 变量名: 例如:int a=1;  int  &b=a;// b是a的别名,因此a和b是同一个单元 ...

随机推荐

  1. Altera DDR2 IP核学习总结2-----------DDR2 IP核的生成

    打开IP核工具,然后选择Verilog HDL选项,填写路径,写入文件名DDR2_IP.V,点击next PLL reference clock frequency填入板子晶振的频率50MHZ,这里设 ...

  2. jquery实现分页效果

    通过jq实现分页的原理如下:将所有条数加载到页面中,根据每页放特定条数(例如 5 条)获取jquery对象索引,使部分条数显示,其他条数隐藏. 前提:引入jquery.js 代码 <!DOCTY ...

  3. 【机器学习】【数字信号处理】矢量量化(Vector Quantization)

    http://blog.csdn.net/zouxy09 这学期有<语音信号处理>这门课,快考试了,所以也要了解了解相关的知识点.呵呵,平时没怎么听课,现在只能抱佛脚了.顺便也总结总结,好 ...

  4. 手把手带你发布Nuget包-图文说话

    博客:https://www.cnblogs.com/24klr/

  5. python 迭代器(第二次总结)

    迭代器 1.先明白迭代器是什么意思 迭代:不断的取值的(器)工具 迭代器:就是一个重复的过程,每一次重复都是基于上一次的结果而来的. (单纯的重复不是迭代) 2.为什么要有迭代器 不依赖索引取值的方法 ...

  6. [转帖]2017年新闻: 中国CPU还在“群雄割据” ,印度已确定了国家指令集

    中国CPU还在“群雄割据” ,印度已确定了国家指令集 时间:2017-12-21 作者:观察者网 https://www.eet-china.com/news/201712210610.html   ...

  7. java tomcate 启动后cmd 出现乱码

    今天windows 启动tomcat 后,出现cmd 乱码 尝试改cmd编码为UTF-8后无效,修改tomcat 注册表CodePage ,cmd 依然乱码, 后来把Conf 目录下的logging. ...

  8. vs2012编译CZMQ-2.2.0

    1.下载源代码包 到地址http://download.zeromq.org/czmq-2.2.0.zip下载源代码,解压缩到czmq-2.2.0文件夹下如图所看到的 watermark/2/text ...

  9. java io 文件下载功能

    一. @RequestMapping(value = "/download/{filename}") public void downloadFile(HttpServletReq ...

  10. openlayers 添加标记点击弹窗 定位图标闪烁

    环境vue3.0 ,地图为公用组件,将添加图标标记的方法放在公共地图的初始化方法里 同一时间弹窗和定位标识都只有一个,因而我把弹窗和定位标记的dom预先写好放到了页面 //矢量标注样式设置函数,设置i ...