On 19 September 2013 at 15:48, Romain Francois wrote: | What I want is to change this: | | #if defined(__GNUC__) | #if defined(__GXX_EXPERIMENTAL_CXX0X__) || (defined (__clang__) && | defined(__LP64__)) | #ifdef __LONG_LONG_MAX__ | __extension__ typedef long long int rcpp_long_long_type; | __extension__ typedef unsigned long long int rcpp_ulong_long_type; | #define RCPP_HAS_LONG_LONG_TYPES | #endif | #endif | #endif | | | to this: | | #if defined(__GNUC__) && defined(__LONG_LONG_MAX__) | __extension__ typedef long long int rcpp_long_long_type; | __extension__ typedef unsigned long long int rcpp_ulong_long_type; | #define RCPP_HAS_LONG_LONG_TYPES | #endif
That's novel and could work. May need testing. May also need to be checked against just using -std=c++11 / -std=c++0x which give us long long rightaway. Also note that Murray got a similar trick into RProtoBuf, albeit at the cost of configure test (by finding an M4 macros which determines whether the compiler can in fact do c++11, and if so, turns it on). | And as long as we don't actually have "long long" in code, but use | "rcpp_long_long_type" then we are fine : What happens when you have 'long long' via C++11? Do they coexist? Also not sure why you first post which seemingly asks for comments and then still rush to commit before anyone has comments. Oh well. Dirk -- Dirk Eddelbuettel | [email protected] | http://dirk.eddelbuettel.com _______________________________________________ Rcpp-devel mailing list [email protected] https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
