From: Yuval Ronen (ronen_yuval_at_[hidden])
Date: 2006-02-25 17:33:28


Christopher Kohlhoff wrote:
> So it seems that if asio is going to provide this constructor,
> then even if it uses unsigned char values there is the
> possibility (on some platforms) of out of range values.
>
> What should happen then if an out of range value is passed? The
> choice is between:
>
> - Silently changing the values to something in the range 0..255.
>
> - Throwing an exception (using boost::throw_exception of course,
> so that platforms that lack exceptions can use another way of
> handling the error).

Sorry for being soooooooo late to reply. Just got back from a month and
a half vacation...

It seems to me that the exception approach fits best to this case. I
also like Daryle's idea of #ifdef-ing out the check when CHAR_BITS == 8,
because the vast majority of Boost users do work in such environments,
and would benefit from it.

Yuval