【发布时间】:2013-01-11 04:29:02
【问题描述】:
我尝试使用 boost 中的以下example:
#include <boost/container/map.hpp>
struct data
{
std::string label;
//A map holding still undefined 'data'
boost::container::map<std::string, data> m_;
};
int main(int argc, char* argv[])
{
data d,d1,d2;
d.m_["hello"] = d1;
return 0;
}
不幸的是它没有编译,我不知道为什么。
编译器消息(只是它的结尾): ../../3d_party_4_5_8/boost_1_49_0/boost/container/detail/tree.hpp|183|错误:没有匹配 גoperator=ג in ג((boost::container::container_detail::rbtree_node, std::allocator >, data>, void*>*)this)->boost::container::container_detail:: rbtree_node, std::allocator >, data>, void*>::m_data.boost::container::container_detail::pair, std::allocator >, data>::second = p->boost::container:: container_detail::pair, std::allocator >, data>::second 分析器.cpp|139|注意:候选人是:data& data::operator=(data&)
【问题讨论】:
-
您是否想过在您的问题中包含编译器错误消息可能会有所帮助?!
-
你
#include <string>了吗? -
你是在C++03模式下编译吗?
-
是的,我不能使用 c++11,但我在这里没有看到 c++11 还是我遗漏了什么?
-
@Ezra:
boost::container在 C++03 模式下使用移动仿真,这是它的限制之一(请参阅我的答案中的链接)。