
On Jul 25, 2006, at 8:31 AM, John Maddock wrote:
Johan RĂ¥de wrote:
So it would make sense to have the functions
is_finite() is_normal() is_subnormal()
is_infinity() is_plus_infinity() is_minus_infinity()
is_nan()
Do we really want to use gratuitously different names from those in C99:
isfinite isnorm isinf isnan
If we use the C99 names, do we intend on #undef'ing the C99 macros if they exist (C99 says these are macros, not functions)? If we don't then the macros will trash our functions. There's an easy technique for converting the macro (if it exists) into a function (demonstrated by gcc's <cmath>). If we do #undef the C99 macros, this is observable behavior which we should document (lest the client be testing #ifndef isnan after the boost header gets included). I recommend restricting these templates to floating point types. Otherwise they are overly generic, and could easily be called accidently, especially isnormal, is_normal, isnorm (or whatever, C99 and C++0X call it isnormal). -Howard