Work around wxFinite() definition conflict with <cmath>.
Using the GNU libstdc++ or Clang's libc++ implementations of the standard library, <cmath> inclusion undefines the isfinite macro, resulting in compilation errors when wxFinite() is used. <cmath> can be included unintentionally, e.g. wx/hashmap.h may result in its inclusion when using STD containers. Work around this mess by checking if one of these <cmath> implementations were already included and using std::isfinite() in that case. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74456 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
2e6bfeb903
commit
f256de1125
@ -62,7 +62,12 @@
|
||||
add more compilers with C99 support here: using C99 isfinite() is
|
||||
preferable to using BSD-ish finite()
|
||||
*/
|
||||
#define wxFinite(x) isfinite(x)
|
||||
#if defined(_GLIBCXX_CMATH) || defined(_LIBCPP_CMATH)
|
||||
// these <cmath> headers #undef isfinite
|
||||
#define wxFinite(x) std::isfinite(x)
|
||||
#else
|
||||
#define wxFinite(x) isfinite(x)
|
||||
#endif
|
||||
#elif ( defined(__GNUG__)||defined(__GNUWIN32__)||defined(__DJGPP__)|| \
|
||||
defined(__SGI_CC__)||defined(__SUNCC__)||defined(__XLC__)|| \
|
||||
defined(__HPUX__) ) && ( !defined(wxOSX_USE_IPHONE) || wxOSX_USE_IPHONE == 0 )
|
||||
|
Loading…
Reference in New Issue
Block a user