
3 Dec
2008
3 Dec
'08
10:23 a.m.
Mathias Gaunard wrote:
Jeff Garland wrote:
bounded_int
::type hour; hour = 20; // OK hour = 26; // exception! Behavior in case of assignment of an invalid value can be customized.
I think this is wrong. Providing an invalid value should be a non-recoverable programming error. Non-recoverable means it should abort the program, and programming error means it should only be enabled in debug mode. i.e. an assert is the best choice to assert the preconditions are met.
How about this then: hour = boost::lexical_cast<int>(user_input_string); Here user_input could come for example from a query string. It would be pointless to use the bounded_int class if I'd have to validate the user input myself. --> Mika Heiskanen