diff options
author | Bobby Bingham <koorogi@koorogi.info> | 2014-12-08 20:18:12 -0600 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2014-12-09 22:34:56 -0500 |
commit | f164875a84c35d0e0d132f99330d3fcda76ee7aa (patch) | |
tree | 3199c182e8b9b5f882eb9fabd4f69f78ecd2745d /include/complex.h | |
parent | 8f7bc690f07e90177b176b6e19736ad7c1d49840 (diff) | |
download | musl-f164875a84c35d0e0d132f99330d3fcda76ee7aa.tar.gz musl-f164875a84c35d0e0d132f99330d3fcda76ee7aa.tar.bz2 musl-f164875a84c35d0e0d132f99330d3fcda76ee7aa.tar.xz musl-f164875a84c35d0e0d132f99330d3fcda76ee7aa.zip |
don't shadow functions with macros in C++
C++ programmers typically expect something like "::function(x,y)" to work
and may be surprised to find that "(::function)(x,y)" is actually required
due to the headers declaring a macro version of some standard functions.
We already omit function-like macros for C++ in most cases where there is
a real function available. This commit extends this to the remaining
function-like macros which have a real function version.
Diffstat (limited to 'include/complex.h')
-rw-r--r-- | include/complex.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/complex.h b/include/complex.h index 13a45c57..e1af0d59 100644 --- a/include/complex.h +++ b/include/complex.h @@ -101,6 +101,7 @@ double creal(double complex); float crealf(float complex); long double creall(long double complex); +#ifndef __cplusplus #define __CIMAG(x, t) \ ((union { _Complex t __z; t __xy[2]; }){(_Complex t)(x)}.__xy[1]) @@ -111,6 +112,7 @@ long double creall(long double complex); #define cimag(x) __CIMAG(x, double) #define cimagf(x) __CIMAG(x, float) #define cimagl(x) __CIMAG(x, long double) +#endif #define __CMPLX(x, y, t) \ ((union { _Complex t __z; t __xy[2]; }){.__xy = {(x),(y)}}.__z) |