下面的代码应该在 Boost 区间图中插入两个具有关联值 0 和 1 的区间,但它只插入了一个:
#include <iostream>
#include <boost/icl/interval_map.hpp>
using Interval = boost::icl::interval<int>;
using IMap = boost::icl::interval_map<int, int>;
int main()
{
IMap m;
m += std::make_pair(Interval::right_open(0, 7), 0); // <== ignored?
m += std::make_pair(Interval::right_open(8,15), 1);
std::cout << m << std::endl;
}
输出:
{([8,15)->1)}
如果我将“忽略”行的值更改为 1,它将正确插入该对。
这是为什么?