$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
Subject: Re: [boost] [review][constrained_value] Review of Constrained ValueLibrary begins today
From: Robert Kawulak (robert.kawulak_at_[hidden])
Date: 2008-12-05 05:40:00
Salut Vicente, :)
> From: vicente.botet
> There is a thing that i don't like in the design, the fact
> that you can change the constraint at runtime.
If you use a constraint that works statically then there is no way to change it.
It is bound to the constrained type.
> I would prefer
> to have two separated hierarchies, one for constrained values
> that preserv its constraints, error handling, ... staticaly,
> and one for those tyhe constraint can be changed at runtime.
I wouldn't prefer to have two separate hierarchies with almost identical
functionality and differing only in details.
> I expect that the preserving constrained values be
> implemented in a more space and time efficient way.
Did you find any problems with suboptimal work of the current implementation for
the static cases?
> For the constrained values that can change its constraint at
> runtime I see two cases, the constraint is attached to the
> instance, which is your case, or it attached to a type.
>
> mutating_type :== by_instance | by_type
>
> When attached to a type, the type needs to maintain the set
> of instances. Instead of changing the type a split operation
> can be provided resulting in a transfer of the instances
> satisfying the new constraint to the new type. Of course this
> meens more space and time consumming, but ...
There was a similar idea on the users list and I'm still not convinced this
leads to something good.
If you request to change the constraint of a whole type and some instances don't
obey your request, then what is the point in doing this?
Best regards,
Robert