Как определить открытость в интервале Boost ICL?
В Boost.ICL, какой канонический способ определить, является ли интервал закрытым или открытым?
В настоящее время я делаю это:
#include<boost/icl/discrete_interval.hpp>
#include<iostream>
int main(){
boost::icl::discrete_interval<int> di({2, 5}); // closed-open by default, but other combinations are possible
if(contains(di, lower(di)) std::cout << "left closed\n"; else std::cout << "left open\n";
if(contains(di, upper(di)) std::cout << "right closed\n"; else std::cout << "right open\n";
}
Но это не кажется элегантным.
Есть ли функция, чтобы определить это? (для динамически ограниченных интервалов)
Кроме того, это будет работать для continuous_interval
? и наконец, есть ли функция (например, значение шаблона) для определения типа компиляции из статического ограниченного интервала (границы, определенные типом компиляции)?