>> Changing that cmath to #include "/usr/include/c++/6.1.1/math.h"
did the trick.
> That's just a workaround though -- not a real fix.
IMHO that is the fix for all plain fpclassify calls nim Mixxx and in external headers.
I have no solution for explicit "std::fclassify" calls or "using" statements in external code though.
Do you think we should prepare defines for that or just ignore that case?
For now I am not aware of a single fclassify call in any header. So the issue might be only a hypothetical one.
> Correct me if I'm wrong -- but if we include util/math.h and a file we include afterwards includes cmath, then we will see the same problem, right? What about headers outside of our control?
From gcc version 6.1.1 <math.h> includes <cmath> and the include guards will prevent the issues.
In previous gcc version math.h cmath seams to be independent. So i am not sure if it works on all compilers versions and targets, hopefully it will not reintroduce other math header issues. So I am afraid we can just do try and error.
>> Changing that cmath to #include "/usr/include/ c++/6.1. 1/math. h"
did the trick.
> That's just a workaround though -- not a real fix.
IMHO that is the fix for all plain fpclassify calls nim Mixxx and in external headers.
I have no solution for explicit "std::fclassify" calls or "using" statements in external code though.
Do you think we should prepare defines for that or just ignore that case?
For now I am not aware of a single fclassify call in any header. So the issue might be only a hypothetical one.
> Correct me if I'm wrong -- but if we include util/math.h and a file we include afterwards includes cmath, then we will see the same problem, right? What about headers outside of our control?
From gcc version 6.1.1 <math.h> includes <cmath> and the include guards will prevent the issues.
In previous gcc version math.h cmath seams to be independent. So i am not sure if it works on all compilers versions and targets, hopefully it will not reintroduce other math header issues. So I am afraid we can just do try and error.