[Rcpp-devel] Making objects in the C++ "side" persistent

Dirk Eddelbuettel edd at debian.org
Thu Mar 20 18:53:37 CET 2014


On 20 March 2014 at 18:39, F.Tusell wrote:
| I have been reading "Exposing C++ functions and classes with Rcpp
| modules" and find the idea interesting. However, I read in Section 5
| that objects created
| using an external pointer are not persistent from session to session.

Yes. The memory behind that pointer is not guaranteed...
 
| For my purposes, I think I could use S4 objects that make C++ copies of
| themselves at creation time, accessible via an external pointer. All
| methods would then make use of the C++ copies for speed, and at the end
| of the session the S4 copies that live in the R side would be saved.
| 
| I am thinking of writing code which at the start of a session checks all
| (S4) objects in the workspace and recreate the C++ copies. Is this the
| way to go? Has someone with a similar problem devised an alternative
| solution? If anyone can offer some hints (or better yet, point to some
| package that I can use for inspiration) I would  be grateful.

The Stan folks also did something about this in an extension / rework of
cxxfunction in inline -- see their package cxxfunplus on CRAN. (Which I
haven't used so I can't help with details -- but it help you or point you the
right way.)

Dirk

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


More information about the Rcpp-devel mailing list