[Rcpp-devel] C++11 in Windows R package
Dirk Eddelbuettel
edd at debian.org
Thu May 29 17:54:52 CEST 2014
Hi John,
On 29 May 2014 at 15:45, John Buonagurio wrote:
| Dirk and Matteo,
|
| This is a MinGW issue, which as far as I can tell is undocumented.
|
| When CXX_STD=CXX11 is added to Makevars.win, R ultimately translates this to "-std=c++0x" in the g++ command (via CXX1XSTD in Makeconf). For some reason, MinGW then #undefs WIN32. This doesn't happen using use "-std=gnu++0x"
|
| You can work around this by checking for _WIN32 instead of WIN32, or just add another define:
|
| #ifdef _WIN32
| #define WIN32
| #endif
Nice work. That is very, very good. I had gone to my default page over at
http://sourceforge.net/p/predef/wiki/Home/
(which is an excellent resource for these things) and got a reminder that the
"official" one is indeed _WIN32 (with underscore). However, R internally
uses WIN32 so I picked that too.
Your suggestion will provide a fallback.
| But, as you saw even with this fixed, Armadillo still has issues with the Rtools GCC...
That's the well-know problem with the toolchain we have imposed on us. We'll
have to see how we can adjust. At least it is gcc/g++ 4.6.* and not 4.2.*
as it was on Windows for many years (and still is on older OS X machines).
Dirk
|
| Best,
| John
|
| | -----Original Message-----
| | From: rcpp-devel-bounces at lists.r-forge.r-project.org [mailto:rcpp-devel-
| | bounces at lists.r-forge.r-project.org] On Behalf Of Dirk Eddelbuettel
| | Sent: Thursday, May 29, 2014 9:32 AM
| | To: Matteo Fasiolo
| | Cc: rcpp-devel at lists.r-forge.r-project.org
| | Subject: Re: [Rcpp-devel] C++11 in Windows R package
| |
| |
| | On 29 May 2014 at 14:27, Matteo Fasiolo wrote:
| | | hopefully this is what you meant: I have searched the sources of
| | | RcppArmadillo, Rcpp and R-3.1.0 for the string "#undef WIN32", but I
| | | didn't find anything.
| | |
| | | I used for example: grep -rnw 'RcppArmadillo' -e '#undef WIN32'
| |
| | I was just on the commuter train, did the same and didn't see it either.
| |
| | But here is another idea: add -DWIN32 in src/Makevars.win. Maybe that
| | definition "survives" and you end up in the right branch.
| |
| | Dirk
| |
| | --
| | Dirk Eddelbuettel | edd at debian.org | http://dirk.eddelbuettel.com
| | _______________________________________________
| | Rcpp-devel mailing list
| | Rcpp-devel at lists.r-forge.r-project.org
| | https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
--
Dirk Eddelbuettel | edd at debian.org | http://dirk.eddelbuettel.com
More information about the Rcpp-devel
mailing list