[Rcpp-devel] Modules + Attributes for extensions
fernandohtoledo at gmail.com
fernandohtoledo at gmail.com
Fri Mar 9 05:02:44 CET 2018
Dear All,
So, after some more digging on the web and studying pointed packages
and documents I did achieve my goal. For those who may have the same
needs, I suggest you take a look on how RcppR6 deal and propose.
Anyway, many thanks to Ralf and Sergei.
Cheers,
FH
-----Original Message-----
From: fernandohtoledo at gmail.com
To: rcpp-devel at lists.r-forge.r-project.org
Subject: Re: [Rcpp-devel] Modules + Attributes for extensions
Date: Wed, 07 Mar 2018 12:02:34 -0600
Dear Sergei,
You got my question... however:
I followed what is shown in RcppBDT as well as in Rcpp Extending
Vignette i.e., include RcppCommon.h, define the class, include Rcpp.h.
But, how the implement as/wrap?
I also turn available the extensions trough the "depends" attribute. It
works and recognize my class...
What I can't understand (implement) is how to define an as<MyClass>
taking MyClass as input from R as well as the wrap(MyClass) which is
supposed to return an instance of MyClass to R.
I did try the Rcpp::XPtr approach for wrapping too but, then what I get
in the R side is and externalptr, not an instance of MyClass.
Any clue or example to point me? I will appreciate :)
Cheers,
FH
-----Original Message-----
From: Serguei Sokol <serguei.sokol at gmail.com>
Reply-to: serguei.sokol at gmail.com
To: fernandohtoledo at gmail.com, rcpp-devel at lists.r-forge.r-project.org
Subject: Re: [Rcpp-devel] Modules + Attributes for extensions
Date: Wed, 7 Mar 2018 16:57:20 +0100
Le 07/03/2018 à 15:59, fernandohtoledo at gmail.com a écrit :
> Dear Ralf and others,
>
> Thanks for your reply. I did looked for the references you pointed
> before. Unfortunately, there is nothing new in the Extending vignette
> than what can be found in Dirk's book chapter. Basically, all the
> others implement custom as/wrap for third part classes to SEXP
> fundamental types.
>
> Perhaps, I didn't state the question clearly... : Given my own class
> exposed through Modules, how to retrieve it from the C++ side?
(Supposing I understood well your question...)
For this part of problem, you have to declare your classes in your
original package (say mypack) in a separate file say
mypack/inst/include/mypack.h
Then in a package which will extend it (say otherpack) you will
delcare in its DESCRIPTION
LinkingTo: mypack
It will allow you to put in your otherpack/src/*.cpp files
#include <mypack.h> So you'll be able to use/extend mypack classes.
> How to
> allow perspective users to extend a package taking exposed class and
> defining new Rccp functions that uses those exposed class as argument
> or return?
As to taking objects instantiated from your classes as arguments in R
session,
it's indeed a matter of custom as()/wrap() custom definition.
Or you can use XPtr hook to passe just pointers to your objects
and de-referencing them appropriately in the Rcpp code.
Best,
Serguei.
>
> My main difficulty is that! I will appreciate your points over that?
>
> Cheers,
> FH
>
> -----Original Message-----
> From: Ralf Stubner <ralf.stubner at r-institute.com>
> To: rcpp-devel at lists.r-forge.r-project.org
> Subject: Re: [Rcpp-devel] Modules + Attributes for extensions
> Date: Tue, 6 Mar 2018 14:41:32 +0100
>
> On 06.03.2018 00:08, fernandohtoledo at gmail.com wrote:
> > I
> > will also appreciate if someone point me an R package in which
> > custom
> > as/wrap are defined!
>
> The reference: http://dirk.eddelbuettel.com/code/rcpp/Rcpp-extending.
> pd
> f
> Also very useful:
> http://gallery.rcpp.org/articles/custom-templated-wrap-and-as-for-sea
> mi
> ngless-interfaces/
>
> Simple example: RcppBDT
> More complex examples: RcppArmadillo, RcppEigen, RcppGSL
>
> Greetings
> Ralf
>
> _______________________________________________
> 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-dev
> el
> _______________________________________________
> 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-dev
> el
>
More information about the Rcpp-devel
mailing list