如下代码:
-
bRet = m_ServerInfo.insert(map<string,CU_SERVER_INFO>::value_type(srv_info.srv_ip, srv_info));
报错:
-
错误:不能将 ‘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。
改正:
-
static ip_ret_pair pRet;
-
m_lock.Lock();
-
pRet = m_ServerInfo.insert(ip_valType(srv_info.srv_ip, srv_info));
-
m_lock.UnLock();
分析:首先,stl语法不熟,其次,对于报错没有认真分析,看到那一长串就不想看了,其实报错信息就是“不能将'****'转换为'bool'”,已经提示地很明显了,是类型错误。
阅读(3065) | 评论(0) | 转发(0) |