是否可以使用类似的结构QMap< QString, boost::multi_index_container<...> >
?
一方面,我们private:
BOOST_COPYABLE_AND_MOVABLE(multi_index_container)
在容器中声明。它应该告诉我们不要将 multi_index_container<> 放入其他类似 stl 的容器中。
另一方面,这样的建设
QMap< QString, boost::multi_index_container<...> > _map;
map.insert("bla-bla", container1);
...
auto tmp = _map.value(QString("bla-bla")).get<keyVal>();
//keyVal corresponds to one for the multi_index_container instance
使用 Visual Studio 2012 (+update4 + boost v1.55 + qt v4.8.5) 编译得很好。
实验发现:
auto tmp = _map.value(QString("bla-bla")).get<keyVal>();
tmp
用于处理已删除的数据。尽管
auto tmp = _map.value(QString("bla-bla"));
auto tmp_1 = tmp.get<keyVal>();
留下tmp_1
有效数据。
boost::multi_index_container<>
如果我们需要将其放入另一个容器中,有人知道正确的处理方法是什么吗?
Qt5.3 有什么不同吗?