Compiling DMD with C++11
Andre Artus
andre.artus at gmail.com
Mon Aug 5 16:59:28 PDT 2013
I decided to see whether dmd would compile with VS2013 and Clang.
So far the only issue seems to be that C++11 RTL already defines
'strtold'.
http://www.cplusplus.com/reference/cstdlib/strtold/
Compiling results in the following error:
Error 1 error C2556: 'longdouble strtold(const char *,char **)' :
overloaded function differs only by return type from 'long double
strtold(const char *,char
**)' d:\source\github\d\dmd\src\root\longdouble.h 201 1 dmd_msc
I have not used C++ in a very long time (cannot believe I used to
love it, now it looks so ugly).
I can build against the VS2012 libraries, but that defeats the
purpose of the exercise for me.
Is there a way to hide cstdlib/strtold?
I could refactor the code to rename dmd/strtold, but that may not
go down well (play nice with others).
I also get the following warnings (when compiling in VS2012):
Warning 1 warning C4805: '!=' : unsafe mix of type 'char' and
type 'bool' in
operation D:\source\GitHub\D\dmd\src\mars.c 1031 1 dmd_msc
(Visual Studio 2012)
Warning 2 warning C4700: uninitialized local variable 'i'
used d:\source\github\d\dmd\src\backend\cgcod.c 2204 1 dmd_msc
(Visual Studio 2012)
Warning 3 warning C4805: '==' : unsafe mix of type 'bool' and
type 'int' in
operation D:\source\GitHub\D\dmd\src\backend\divcoeff.c 284 1 dmd_msc
(Visual Studio 2012)
I tend to treat warnings as errors in my own code, which I
relaxed here in order to get a working build.
More information about the Digitalmars-d
mailing list