[Rcpp-devel] Pass an Rcpp module object to a method belonging to another module from R?
Romain Francois
romain at r-enthusiasts.com
Wed Sep 10 11:39:21 CEST 2014
This is once again something with which the RCPP_EXPOSED_CLASS macro can help with. Try adding
RCPP_EXPOSED_CLASS(A)
before you declare class A and simply use this signature for the method.
void DoSomethingWithInstanceOfA(const A& )
Also, you can have both of these classes in the same module you know;
RCPP_MODULE(LemonCurry)
{
using namespace Rcpp;
class_<A>( "A" )
.constructor();
class_<B>( "B" )
.constructor()
.method("DoSomethingWithInstanceOfA", &B::DoSomethingWithInstanceOfA);
}
Romain.
PS: Having to resort to that sort of macros is one of the reason that made me remove modules from Rcpp11, which will be replaced by something that will be nicer to use later.
Le 10 sept. 2014 à 02:56, Grant Brown <grant.brown73 at gmail.com> a écrit :
> Hi folks,
>
> I'm building several Rcpp modules which specify parts of a complicated statistical model, and want to pass them to a main module for use. Is there an easy way to do this?
>
> Below is a simplified example, with question marks where I'm not sure what to do. I've tried accepting a pointer to A, playing with using XPtrs, and a bunch of things which made far less sense, but so far no luck.
>
> Any suggestions or links to sections of the docs I should revisit would be appreciated.
>
> Thanks,
> -Grant
>
>
> ## file: A.cpp
>
> class A
> {
> public:
> A();
> ~A();
> };
>
> class B
> {
> public:
> B();
> void DoSomethingWithInstanceOfA(???);
> ~B();
> };
>
> A::A()
> {
> // Do stuff
> }
>
> B::B()
> {
> // Do stuff
> }
>
> B::DoSomethingWithInstanceOfA(???)
> {
> // Do stuff
> }
>
> RCPP_MODULE(mod_A)
> {
> using namespace Rcpp;
> class_<A>( "A" )
> .constructor();
> }
>
> RCPP_MODULE(mod_B)
> {
> using namespace Rcpp;
> class_<B>( "B" )
> .constructor()
> .method("DoSomethingWithInstanceOfA", &B::DoSomethingWithInstanceOfA);
> }
>
>
> ### End pseduo c++ code
>
>
> _______________________________________________
> 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-devel
More information about the Rcpp-devel
mailing list