Trying to build with Boost 1.76 it is failing like so.. /home/ports/pobj/gnucash-4.5/gnucash-4.5/libgnucash/engine/gnc-numeric.cpp:87:9: error: no member named 'isnan' in namespace 'std'; did you mean simply 'isnan'? if (std::isnan(d) || fabs(d) > max_leg_value) ^~~~~~~~~~ isnan /usr/include/c++/v1/math.h:545:1: note: 'isnan' declared here isnan(long double __lcpp_x) _NOEXCEPT { return __libcpp_isnan(__lcpp_x); } ^ 1 error generated.
https://en.cppreference.com/w/cpp/numeric/math/isnan says it's a thing. Does adding #include <cmath> at the top of gnc-numeric.cpp fix it? What compiler and standard C++ library?
Clang / libc++. It builds just fine with Boost 1.73. Let me try adding the header.
(In reply to brad from comment #2) > Clang / libc++. > > It builds just fine with Boost 1.73. > > Let me try adding the header. It's a bit strange that boost would break something like that. You might have to put the new include before the boost includes.
I added the header below cstdlib and it built to completion.
OK, I've pushed a commit that replaces all of the extern "C" standard C headers with their C++ equivalents and gets them all included before the boost ones.