这个小样本应该在容器中增加两个间隔。但是只添加了第二个
boost::icl::interval_map<int, int> pos2lineInfo;
// last parameter 0 result in no add operation
pos2lineInfo += std::make_pair(boost::icl::interval<int>::closed(0,25),0);
int size1 = pos2lineInfo.size(); // returns 0
pos2lineInfo += std::make_pair(boost::icl::interval<int>::closed(26, 38), 1);
int size2 = pos2lineInfo.size(); // returns !=0
我在提升代码中发现了这种情况,这种情况是由于缺少物品引起的。
const codomain_type& co_val = addend.second;
if(on_absorbtion_::is_absorbable(co_val))
return this->_map.end();
以下代码似乎可以解决此问题。
boost::icl::interval_map<int, int, boost::icl::total_enricher> pos2lineInfo;