OK, actually there is a simple way to achieve this, with minimal modifications to the Rcpp codebase: https://github.com/gaborcsardi/Rcpp/commit/8b160547d50d668099dff3802c01001baaf415b6
With this, I can put the functions I want to wrap to a separate file, that is essentially a header file, with contents like this: #include <Rcpp.h> using namespace Rcpp; // [[Rcpp::export]] List rcpp_hello_world(); The other reason why this is great is that I can now define potentially different conversions to arguments of the same C/C++ type. E.g. if I have (hypothetical) functions like this double mean(MyNumericVector* vector); void permute(MyNumericVector *vector); then I can write the different as<> conversion for the first vector, where I don't actually need to copy the SEXP, by simply putting this in the header file that defines the wrapping: double mean(in_MyNumericVector *vector); void permute(inout_MyNumericVector *vector); and then defining conversions for in_MyNumericVector and inout_MyNumericVector. All good. Best, Gabor On Wed, Feb 12, 2014 at 12:05 PM, Gábor Csárdi <csardi.ga...@gmail.com>wrote: > On Wed, Feb 12, 2014 at 11:41 AM, Dirk Eddelbuettel <e...@debian.org>wrote: > [...] > > | My question is, is there a way you keep the original sources of the >> wrapped >> | library intact? I would be updating the sources regularly, and I >> figured the >> | best would be not to touch them at all. >> >> Did you see the 'Rcpp-extending.pdf' vignette about intrusive vs >> non-intrusive as<> and wrap? >> > > Sure, I have read that. This helps with the conversions, if I want to > write the wrapper myself. > > Ideally I would have the wrapper generated by Rcpp attributes. Essentially > what I am asking for is the possibility to avoid adding the // > [[Rcpp::export]] lines (and other attributes configuration) to the original > sources, but having these lines in a separate file (or files?). This file > would be essentially the description of the wrapper to be generated by Rcpp > attributes. > > I have to admit that I have only tried the Rcpp examples in the manuals so > far, so please forgive me if what I am asking for is unreasonable, or is > already solved. > > [...] > >> | According to the docs, compileAttributes does not support this. Do you >> have >> > | anything against implementing this in Rcpp? If not, and you can help me >> coming >> | up with some syntax that you like, I can code it up. >> >> Attributes can surely be extended, but some discussion or prototyping may >> not >> hurt. >> > > OK, so I'll open an issue for this in your github issue tracker, and fork > the repo as well. > > G. > > [...] >
_______________________________________________ Rcpp-devel mailing list Rcpp-devel@lists.r-forge.r-project.org https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel