[Rcpp-devel] Creating pointers to objects and wrapping them

Dirk Eddelbuettel edd at debian.org
Sun Apr 17 20:14:59 CEST 2011


Peter,

On 17 April 2011 at 10:45, schattenpflanze at arcor.de wrote:
| Hello,
| 
| I have made progress exposing my C++ classes to R with Rcpp-Modules and 
| I really like the way it works. Thanks for this great package!
| 
| There are, however, lots of aspects about Rcpp which I do not yet fully 
| understand. Here is one of them:
| I have exposed a C++ class MyClass to R via an Rcpp module. Now I would 
| like to write a C++ function, which creates (pointers to) objects of 
| this class. The return type should ideally be a vector/list of pointers 
| to the created C++ objects. The pointers should have the same type as 
| those returned by the exposed constructors of MyClass in the module. In 
| particular, I want R to do the memory management and garbage collection 
| when I destroy the returned list of pointers.
| 
| When I try to directly wrap an object of type MyClass or a pointer to it 
| or a List containing it, I get compiler errors. So I suppose this is not 
| the way to do it. I can create a vector of Rcpp::XPtrs and return it 
| successfully to R, but then I cannot use the objects in R in the same 
| way as those created by the constructor, namely object_pointer$method().
| 
| Is there a way to achieve this or can you recommend a reasonable 
| alternative design?
| How are XPtrs related to the objects a Rcpp-Module class constructor 
| returns, if at all?

Could you mock up a small example?
 
| Meta question:
| Is there a search function for the Rcpp mailing list archive?

I just constrain Google to, say, site:gmane.org to restrict the search to a
particular site.  And I also use grep on my folder with the list messages.

Dirk

-- 
Dirk Eddelbuettel | edd at debian.org | http://dirk.eddelbuettel.com


More information about the Rcpp-devel mailing list