[R-pkg-devel] testing for NaN in C++ code

Ben Bolker bbo|ker @end|ng |rom gm@||@com
Sat Mar 6 02:55:22 CET 2021

I would like to test for NaN inside C++ code that lives inside a CRAN 

Following the StackOverflow question linked below, I was using

#define isNAN(a)  (a!=a)

which I *think* used to work, but at some point along the way it stopped 
working due to compiler/flag changes. I'm thinking of switching to

#define isNAN(a) std::isnan(a)

instead. Does anyone have first-hand knowledge of having tried this and 
know if it works across the range of platforms/standard compilation 
flags that CRAN/R users are likely to experience?  Any other suggestions?

  I know that I should follow the problem upstream and detect it where 
it happens (see the answer titled "nan prevention" on SO), but in the 
meantime it would be nice to be able to do this robustly across all the 
platforms it's likely to see.

     Ben Bolker


More information about the R-package-devel mailing list