Chinaunix首页 | 论坛 | 博客
  • 博客访问: 425426
  • 博文数量: 126
  • 博客积分: 35
  • 博客等级: 民兵
  • 技术积分: 1262
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-19 16:39
文章分类

全部博文(126)

文章存档

2017年(2)

2016年(20)

2015年(64)

2014年(24)

2013年(16)

我的朋友

分类: C/C++

2014-03-24 16:48:18

如下代码:
  1. bRet = m_ServerInfo.insert(map<string,CU_SERVER_INFO>::value_type(srv_info.srv_ip, srv_info));
报错:
  1. 错误:不能将 ‘std::pair<std::_Rb_tree_iterator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, cu_server_info> >, bool>’ 转换为 ‘bool’,在 assignment 中
原因:stl语法不熟悉,map的insert方法的返回值是 一个pair类型的对象,包含一个迭代器和一个bool。
改正:
  1.     static ip_ret_pair pRet;
  2.     m_lock.Lock();
  3.     pRet = m_ServerInfo.insert(ip_valType(srv_info.srv_ip, srv_info));
  4.     m_lock.UnLock();
分析:首先,stl语法不熟,其次,对于报错没有认真分析,看到那一长串就不想看了,其实报错信息就是“不能将'****'转换为'bool'”,已经提示地很明显了,是类型错误。

阅读(3006) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~