Hi,

I am using mingw w64 5.0.2 on a linux machine with gcc/g++ 7.2.0.
I noticed that the macro WIN32 is:
- defined if -std=gnu++{98,11,14,17}
- not defined if -std=c++{98,11,14,17}

why such difference?

A library I try to cross-compile tests for WIN32 and fails. I have to
manually change all WIN32 in _WIN32.

>From what I understand, macros without _ are the responsability of
w64, not gcc but I may be wrong.

F

Here is how I test (foo.cpp is an empty file):
for o in c gnu; do for y in 98 11 14 17; do echo "-std=${o}++${y}";
x86_64-w64-mingw32-g++-7.2.0 -E -dM -O3 -std=${o}++${y} foo.cpp|grep
WIN32; done; done
-std=c++98
#define _WIN32 1
#define __WIN32 1
#define __WIN32__ 1
-std=c++11
#define _WIN32 1
#define __WIN32 1
#define __WIN32__ 1
-std=c++14
#define _WIN32 1
#define __WIN32 1
#define __WIN32__ 1
-std=c++17
#define _WIN32 1
#define __WIN32 1
#define __WIN32__ 1
-std=gnu++98
#define _WIN32 1
#define __WIN32 1
#define __WIN32__ 1
#define WIN32 1
-std=gnu++11
#define _WIN32 1
#define __WIN32 1
#define __WIN32__ 1
#define WIN32 1
-std=gnu++14
#define _WIN32 1
#define __WIN32 1
#define __WIN32__ 1
#define WIN32 1
-std=gnu++17
#define _WIN32 1
#define __WIN32 1
#define __WIN32__ 1
#define WIN32 1

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to