
----- Original Message ----- From: "Robert Kawulak" <robert.kawulak@gmail.com> To: <boost@lists.boost.org> Sent: Sunday, October 17, 2010 3:29 AM Subject: Re: [boost] [constrained_value] Constrained Value review results
In general, the idea looks interesting and also consistent with the idea of Vicente Botet to specify bounds inclusion like this:
bounded<int, open_c<0>, close_c<100> >
This would allow to write:
bounded<int, bound::int_c<-10>, bound::int_c<10> > bounded<int, bound::of_type<int>, bound::of_type<int> > bounded<rational, bound::of_type<quarter2type>, bound::of_type<half2type> > bounded<int, bound::int_c<0>, bound::of_type<big_prime> > bounded<int, bound::int_c<0, bound::included>, bound::of_type<int, bound::excluded> >
Being more explicit it is also unfortunately more verbose in most cases, compared to the current syntax:
bounded_int<int, -10, 10> bounded<int> bounded<rational, quarter2type, half2type> bounded<int, mpl::int_<0>, big_prime> bounded<int, mpl::int_<0>, int, throw_exception<>, mpl::false_, mpl::true_>
I was wondering whether the library could not define some more generic logical and comparison constraints so we can do constrained<int, and_<greater_equal<int_<-10> >, less_equal<int_<10> > > > constrained<int, and_<greater_equal<ratio<1,4> >, less_equal<ratio<1,2> > > > constrained<int, and_<greater_equal<int_<0> >, less_equal<big_prime > > > constrained<int, and_<greater<int_<0> >, less_equal<int_<10> > > > This will cover all the bounded cases with inclusion or exclusion of the bound. Best, Vicente