Как сдвинуть discrete_interval с использованием библиотеки контейнеров интервала Boost?
т.е. я хочу вычесть целое число c из нижнего () интервала и из верхнего () интервала? Очевидно, я мог бы создать новый интервал, но я ищу канонический способ сделать это.
Канонический способ состоит в том, чтобы построить новый интервал и назначить его вашему интервалу, потому что boost::lcl::discrete_interval
является неизменным (кроме оператора присваивания). Таким образом, чтобы сдвинуть интервал, вы должны создать новый интервал с желаемыми нижними и верхними границами и назначить его старому интервалу.
boost::icl::discrete_interval<int> interval;
interval = boost::icl::discrete_interval<int>::closed(3, 4);
Других решений пока нет …