
"David Abrahams" <dave@boost-consulting.com> wrote in message news:umzaulykv.fsf@boost-consulting.com...
"Andy Little" <andy@servocomm.freeserve.co.uk> writes:
A bool_ is stated to be a model of Integral Constant, but it patently doesnt and can never meet the next / prior requirements.
Well, that's not strictly true. false_ and true_ can meet the next/prior requirements just as well as int_<INT_MIN> and int_<INT_MAX> can.
Which is that they cant, so the statement is strictly true, INT_MIN and INT_MAX arent models of Integral Constant either, similar for unsigned types.
Any bounded type has the same problem; maybe we need to be more precise about what happens at the endpoints of the range.
I have found it essential for maths on a compile time rational, but its more critical there. As regards bool_ , the debate is interesting for theoreticians but for practical programmers, it should be a separate Concept .. simple and many of the type_traits functions should use that, which would remove the need for the true_or_false_type mullarkey. Also I suspect that the change from boost::is_same to std::is_same is going to break a lot of code, unless the mpl tag requiremnet is lifted ;-) regards Andy Little