[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