具有常量值的 C++ Boost ptr_map
C++ Boost ptr_map with const value
我正在处理一个现有的项目,我正在尝试替换一个
std::map<AClass,const *BCLass>
与 boost::ptr_map<AClass,const BClass>
。问题是我找不到将一对插入地图的方法。似乎所有的插入函数都不能接受常量值。有解决办法吗?我也试过 boost::assign::ptr_map_insert() 没有运气。
此致。
这似乎不受支持
我什至无法用 boost::assign::ptr_map_insert
¹
创造奇迹
我建议创建一个构建地图的函数,然后只返回一个 const 副本或对它的引用:
ptr_map<A,V> const m = make_my_map();
¹ 如果您有兴趣:
#include <boost/ptr_container/ptr_map.hpp>
#include <boost/assign/ptr_map_inserter.hpp>
struct A {
int i;
A(int i):i(i) {}
bool operator<(A const& other) const { return i<other.i; }
};
struct B { std::string s;
B(std::string s) : s(std::move(s)) { }
};
int main() {
boost::ptr_map<A, /*const*/ B> m;
boost::assign::ptr_map_insert(m)(42, "forty-two");
}
我正在处理一个现有的项目,我正在尝试替换一个
std::map<AClass,const *BCLass>
与 boost::ptr_map<AClass,const BClass>
。问题是我找不到将一对插入地图的方法。似乎所有的插入函数都不能接受常量值。有解决办法吗?我也试过 boost::assign::ptr_map_insert() 没有运气。
此致。
这似乎不受支持
我什至无法用 boost::assign::ptr_map_insert
¹
我建议创建一个构建地图的函数,然后只返回一个 const 副本或对它的引用:
ptr_map<A,V> const m = make_my_map();
¹ 如果您有兴趣:
#include <boost/ptr_container/ptr_map.hpp>
#include <boost/assign/ptr_map_inserter.hpp>
struct A {
int i;
A(int i):i(i) {}
bool operator<(A const& other) const { return i<other.i; }
};
struct B { std::string s;
B(std::string s) : s(std::move(s)) { }
};
int main() {
boost::ptr_map<A, /*const*/ B> m;
boost::assign::ptr_map_insert(m)(42, "forty-two");
}