[Rcpp-devel] reference classes in C++ :is it possible?
Steven Varga
steven.varga at gmail.com
Fri Mar 1 20:34:51 CET 2013
Hello
First thanks Dirk for the quick reply and the hint; Mr. John Chamber's
implementation is great! gone through the documentation and followed his
instructions. Worked well. Only one way though -- as you pointed out.
I was able to get the fields from the extended class; if someone could
point into the direction how to get/execute methods of a Reference Class
then it may be doable??
..... c++ class ......
void set_reference( SEXP xptr_){
Rcpp::Reference ref(xptr_);
ref.field("some_field")); // get the field data
// ------- this is not implemented, any hints? --------
ref.method("some_method")( x, y); // this would be nice to have
}
...... end .......
setRcppClass("World",
module="yada",
fields = list( some_field = "character"),
methods = list(
initialize = function(){
some_field <<- "field value set"
callSuper() # call constructor
set_reference( .self ) # pass 'this'
}
),saveAs="genWorld"
)
On Thu, Feb 28, 2013 at 8:15 AM, Dirk Eddelbuettel <edd at debian.org> wrote:
> On 28 February 2013 at 04:44, Steven Varga wrote:
> | I am trying to create an abstract pattern using R reference objects in
> C++;
> | anyone knows if this is possible/not possible? Where to look?
>
> I am not sure you can. The best (only ?) relevant documentation might be
> John
> Chamber's example of 'Rcpp Classes' (see help(setRcppClass) in R once Rcpp
> is
> loaded).
>
> And as I recall, he is pretty explicit that you can take a C++ class and
> "extend" it for prototyping from the R side, but that you cannot access
> those
> extended parts from C++ as only R sees it. I think you are hitting a
> similar
> constraint here.
>
> It would be nice if this worked but I am not quite sure that it can.
>
> Dirk
>
> --
> Dirk Eddelbuettel | edd at debian.org | http://dirk.eddelbuettel.com
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/rcpp-devel/attachments/20130301/aa90e387/attachment.html>
More information about the Rcpp-devel
mailing list