From rom@in @ending from r@tudio@com  Wed Oct 10 10:57:49 2018
From: rom@in @ending from r@tudio@com (Romain Francois)
Date: Wed, 10 Oct 2018 10:57:49 +0200
Subject: [Rd] R_ext/Altrep.h should be more C++-friendly
In-Reply-To: <alpine.DEB.2.21.1810082208350.3154-896@luke-Latitude-7480>
References: <CAHPe-e8S9Gp1jnx5=Uu2jjJc1kn6XOjB=1ie4iuMzL3bXTcnJQ@mail.gmail.com>
 <alpine.DEB.2.21.1810082208350.3154-896@luke-Latitude-7480>
Message-ID: <2248EC5C-9825-4CA8-A179-37F2AEFF93BD@rstudio.com>

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 at 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 at uiowa.edu
> Iowa City, IA 52242                 WWW:  http://www.stat.uiowa.edu
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel


	[[alternative HTML version deleted]]



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