[Rd] R_ext/Altrep.h should be more C++-friendly

Romain Francois rom@in @ending from r@tudio@com
Wed Oct 10 10:57:49 CEST 2018


Thank you, 

I updated my example package so that it works with both. https://github.com/romainfrancois/altrepisode/blob/96af0548a9ecc08701d119ea427e16940a82882b/src/altrepisode.h <https://github.com/romainfrancois/altrepisode/blob/96af0548a9ecc08701d119ea427e16940a82882b/src/altrepisode.h>

We have to do something like this unless we depend on R 3.6.0: 

#if R_VERSION < R_Version(3, 6, 0)
  #define class klass
  extern "C" {
    #include <R_ext/Altrep.h>
  }
  #undef class
#else
  #include <R_ext/Altrep.h>
#endif

Romain

> Le 9 oct. 2018 à 05:09, Tierney, Luke <luke-tierney using uiowa.edu> a écrit :
> 
> Thanks for the suggestion. Committed in R_devel.
> 
> Best,
> 
> luke
> 
> On Mon, 8 Oct 2018, Michael Sannella wrote:
> 
>> I am not able to #include "R_ext/Altrep.h" from a C++ file.  I think
>> it needs two changes:
>> 
>> 1. add the same __cplusplus check as most of the other header files:
>>     #ifdef  __cplusplus
>>     extern "C" {
>>     #endif
>>         ...
>>     #ifdef  __cplusplus
>>     }
>>     #endif
>> 
>> 2. change the line
>>     R_new_altrep(R_altrep_class_t class, SEXP data1, SEXP data2);
>>  to
>>     R_new_altrep(R_altrep_class_t cls, SEXP data1, SEXP data2);
>>  since C++ doesn't like an argument named 'class'
>> 
>>   ~~ Michael Sannella
>> 
>> 
>> 
> 
> -- 
> Luke Tierney
> Ralph E. Wareham Professor of Mathematical Sciences
> University of Iowa                  Phone:             319-335-3386
> Department of Statistics and        Fax:               319-335-3017
>    Actuarial Science
> 241 Schaeffer Hall                  email:   luke-tierney using uiowa.edu
> Iowa City, IA 52242                 WWW:  http://www.stat.uiowa.edu
> ______________________________________________
> R-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel


	[[alternative HTML version deleted]]



More information about the R-devel mailing list