mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2024-11-24 02:34:17 +08:00
math: Import isinf and others to global namespace
Starting from C++11, several math functions, like isinf, moved into the std namespace. Since cmath undefines those functions before redefining them inside the namespace, and glibc 2.23 defines the C variants as macros, the C variants in global namespace are not accessible any longer. v2: Move the fix outside of Nouveau, as suggested by Jose Fonseca, since anyone might need it when GCC switches to C++14 by default with GCC 6.0. v3: * Put the code directly inside c99_math.h rather than creating a new header file, as asked by Jose Fonseca; * Guard the code behind glibc version checks, as only glibc > =2.23 defines isinf & co. as functions, as suggested by Jose Fonseca. Signed-off-by: Pierre Moreau <pierre.morrow@free.fr> Signed-off-by: Jose Fonseca <jfonseca@vmware.com>
This commit is contained in:
parent
d3c98c73dc
commit
649704f1f7
@ -185,4 +185,27 @@ fpclassify(double x)
|
||||
#endif
|
||||
|
||||
|
||||
/* Since C++11, the following functions are part of the std namespace. Their C
|
||||
* counteparts should still exist in the global namespace, however cmath
|
||||
* undefines those functions, which in glibc 2.23, are defined as macros rather
|
||||
* than functions as in glibc 2.22.
|
||||
*/
|
||||
#if __cplusplus >= 201103L && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 23))
|
||||
#include <cmath>
|
||||
|
||||
using std::fpclassify;
|
||||
using std::isfinite;
|
||||
using std::isinf;
|
||||
using std::isnan;
|
||||
using std::isnormal;
|
||||
using std::signbit;
|
||||
using std::isgreater;
|
||||
using std::isgreaterequal;
|
||||
using std::isless;
|
||||
using std::islessequal;
|
||||
using std::islessgreater;
|
||||
using std::isunordered;
|
||||
#endif
|
||||
|
||||
|
||||
#endif /* #define _C99_MATH_H_ */
|
||||
|
Loading…
Reference in New Issue
Block a user