-
Notifications
You must be signed in to change notification settings - Fork 226
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update/improve ccmath configuration. #1045
Conversation
@mborland most of the changes here are to ccmath: does this look OK to you? The drone failures are due to github falling over yesterday BTW, I don't see an easy way to re-run that? |
It looks good to me. I have organizational access to drone so I restarted the build. The status should be updated here on re-run. |
By the way once you merge the PR to merge to master for next release (#1042) will also automatically pull your commits in. |
Thanks Matt, one last failure is a network timeout, merging... |
I don't know why this was never a problem before, but nested namespaces are C++17 and I just had a MSVC compiler report this when set to C++14 at lines like this |
Ah OK. It should be caught by the preprocessor. Now how on earth did I set a MSVC compiler to C++14 and still reach that line of code? I will investigate... |
OK. John and Matt. Sorry to report, ... but There seems to be some kind of very obscure problem. Sadly I must report it.
And I get this: |
Oh well, you know, MSVC doesn't really adhere to the well-known Anyway, here is the complete code: #include <boost/multiprecision/number.hpp>
#include <boost/math/ccmath/isinf.hpp>
auto main() -> int
{
} |
Sorry guys this is really garbled since it literally just crossed my path and I need to isolate better. This!!! is the offending code: #define BOOST_MP_STANDALONE
#define BOOST_MATH_STANDALONE
#include <boost/config.hpp>
#include <boost/multiprecision/number.hpp>
#include <boost/math/ccmath/isinf.hpp>
auto main() -> int
{
} |
It's the standalone bit that does this - it means we have no Boost.Config, so either we need to completely copy all of it's detection logic, or accept that the helpful #error message doesn't get triggered in this case, and rely on the compiler rejecting C++17 ism's which it does perfectly well IMO. I might be able to improve things a little for latest MSVC releases which have the C++20 feature detection macros, but not for older releases which do not. Not sure it's completely worth it anyway, the existing error message is pretty clear that this needs C++17 to compile? |
Ah... except that breaks client code that relies on BOOST_MATH_NO_CCMATH being set when the header isn't supported.... there may be an easy fix too, give me a moment! |
Improvement in #1046. |
Thank you John. I can confirm for my client code, it is fixed in your new PR #1046 |
No description provided.