<div dir="ltr">fyi<br><br><div class="gmail_quote">---------- Forwarded message ----------<br>From: <b class="gmail_sendername">Prof Brian Ripley</b> <span dir="ltr"><<a href="mailto:ripley@stats.ox.ac.uk">ripley@stats.ox.ac.uk</a>></span><br>
Date: Sun, Nov 10, 2013 at 9:19 AM<br>Subject: CRAN packages with C++11 errors on isnan or isinf<br>To: Yurii Aulchenko <<a href="mailto:yurii@bionet.nsc.ru">yurii@bionet.nsc.ru</a>>, Daniel Taliun <<a href="mailto:Daniel.Taliun@eurac.edu">Daniel.Taliun@eurac.edu</a>>, Cedric E Ginestet <<a href="mailto:cedric.ginestet@kcl.ac.uk">cedric.ginestet@kcl.ac.uk</a>>, Philip Johnson <<a href="mailto:plfjohnson@emory.edu">plfjohnson@emory.edu</a>>, Franck Picard <<a href="mailto:franck.picard@univ-lyon1.fr">franck.picard@univ-lyon1.fr</a>>, The Minh Luong <<a href="mailto:luongtm@yahoo.com">luongtm@yahoo.com</a>><br>
Cc: CRAN <<a href="mailto:CRAN@r-project.org">CRAN@r-project.org</a>><br><br><br>This concerns packages<br>
<br>
DatABEL GWAtoolbox GenABEL LDExplorer NetworkAnalysis adaptivetau cghseg postCP<br>
<br>
for which we have reported errors on g++ 4.8.x (and clang++ using g++ headers showing on the CRAN check pages) like<br>
<br>
CastUtils.cpp: In function 'bool checkNan(void*, int)':<br>
CastUtils.cpp:189:38: error: call of overloaded 'isnan(double&)' is ambiguous<br>
          return isnan(*(double*) data);<br>
<br>
isnan is a macro in C99 included in <math.h>.<br>
<br>
isnan is a function in C++11 in <cmath>, overloaded for float, double and long double and maybe more types.<br>
<br>
In tracking down a similar issue we found it was due to including both <math.h> and <cmath>.  That package did so explicitly, but it is easy for this to be done by other headers you include.<br>
<br>
A remedy was to use std::isnan if you want the C++11 version and ::isnan if you want the C99 version.  But note that C++98 (the default standard) includes neither, so the most portable thing to do is to use R's ISNAN via header <R.h> (and for safety include that header after all the system ones).<br>

<br>
<br>
isinf is analogous, with R_FINITE available.<span class="HOEnZb"><font color="#888888"><br>
<br>
-- <br>
Brian D. Ripley,                  <a href="mailto:ripley@stats.ox.ac.uk" target="_blank">ripley@stats.ox.ac.uk</a><br>
Professor of Applied Statistics,  <a href="http://www.stats.ox.ac.uk/~ripley/" target="_blank">http://www.stats.ox.ac.uk/~<u></u>ripley/</a><br>
University of Oxford,             Tel:  <a href="tel:%2B44%201865%20272861" value="+441865272861" target="_blank">+44 1865 272861</a> (self)<br>
1 South Parks Road,                     <a href="tel:%2B44%201865%20272866" value="+441865272866" target="_blank">+44 1865 272866</a> (PA)<br>
Oxford OX1 3TG, UK                Fax:  <a href="tel:%2B44%201865%20272595" value="+441865272595" target="_blank">+44 1865 272595</a><br>
</font></span></div><br><br clear="all"><div><br></div>-- <br>-----------------------------------------------------<br>Yurii S. Aulchenko<br><div><br></div><div>[ <a href="http://nl.linkedin.com/in/yuriiaulchenko" target="_blank">LinkedIn</a> ] [ <a href="http://twitter.com/YuriiAulchenko" target="_blank">Twitter</a> ] [ <a href="http://yurii-aulchenko.blogspot.nl/" target="_blank">Blog</a> ]</div>

</div>