[Rcpp-devel] Rcpp modules and parsing an object back and forth between R & C++
Romain Francois
romain at r-enthusiasts.com
Tue Feb 19 18:14:06 CET 2013
Le 19/02/13 17:21, Hadley Wickham a écrit :
> Hi all,
>
> I'd like to have a simple C++ object that I can work with in either
> C++ or R. I can create the class, and expose it to R with modules
> (https://gist.github.com/hadley/4987110), but I don't know how to
> write the SEXP constructor or SEXP() operator to make it easy to move
> it back and worth between C++ and R. I presume I just have to grab and
> cast an external pointer, but I don't know the structure of the R
> object that the module creates. Could anyone point me in the right
> direction?
>
> Thanks!
>
> Hadley
Unfortunately, at the moment modules and attributes don't play together.
The attributes feature used to be built on top of modules, but this
caused issues on windows.
One thing we could perhaps negociate with JJ is recognition of the
export attribute on module. Something like :
// [[Rcpp::export]]
RCPP_MODULE(SimpleModule) {
class_<Simple>( "Simple")
.constructor<double>()
.const_method("times", &Simple::times)
;
}
or perhaps even just recognizing the RCPP_MODULE declaration.
Once we have that, you won't need the SEXP constructor or the SEXP
conversion operator, and you would only need that before your class
declaration:
RCPP_EXPOSED_CLASS(Simple)
So that as and wrap are taken care of.
Romain
--
Romain Francois
Professional R Enthusiast
+33(0) 6 28 91 30 30
R Graph Gallery: http://gallery.r-enthusiasts.com
blog: http://romainfrancois.blog.free.fr
|- http://bit.ly/14LJhmm : bibtex 0.3-5
`- http://bit.ly/RE6sYH : OOP with Rcpp modules
More information about the Rcpp-devel
mailing list