error C2280: 尝试引用已删除的函数
2024-08-30 19:58:57
#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换成简单类型。还有将析构函数权限没有放在公有权限中而报该错误的。
最新文章
- openvpn配置教程
- 今天说一下Top ~
- JSBinding / Code Snippets
- innobackupex err
- IO流--切割 合并文件
- WPF Button的背景图片设置
- SQL Server 2008 设计与实现笔记(一)
- C++ -windows与unix路径分隔符
- Android: 在WebView中获取网页源码
- 安装gstreamer
- [Android学习笔记]捕获物理回退事件
- php相关书籍视频
- IO模式和IO多路复用
- Round #2
- kubernetes云平台管理实战: 集群部署(一)
- Groovy语言学习--语法基础(2)
- 20165314 Linux安装及学习
- django 视图函数返回queryset对象或日期对象至浏览器ajax接收的写法
- DRF框架之 serializers 序列化组件
- React Native桥接器初探