
On 9/25/05 7:02 PM, "Robert Kawulak" <kawulak@student.agh.edu.pl> wrote:
Restricted is ok, but I like constrained better. Please see:
http://www.boost.org/doc/html/constrained_value.html http://www.boost.org/boost/date_time/constrained_value.hpp http://www.artima.com/weblogs/viewpost.jsp?thread=79470
Jeff [SNIP] BTW, constrained_value of Christofer Diggins has at least one 'bug' - it has a default constructor which default-initialises the value, and doesn't check if this default value conforms to the constraints. I also believe, that it'd be better to supply operator const value() than operator value() - this conversion is implicit so the const version would be safer.
Why bother with the "const"? The usage will already return a r-value, i.e. a temporary. The kinds of mutable operations that can be done on it are already restricted. The only times I've seen mutable operations on such values are ones that were deliberately done. The "const" adds nothing but annoyance; the safety-conscious won't need it since they wouldn't try mutable code, and the programmers that want to abuse a mutable operation would be upset that you locked them out. It's the same kind of controversy about (member) functions returning non-reference objects with "const" attached. (And we seen "cute" tricks in C++ made for our "benefit" back-fire later, like std::vector<bool>.) -- Daryle Walker Mac, Internet, and Video Game Junkie darylew AT hotmail DOT com