On 2 May 2014 at 14:14, Florian Burkart wrote: | Hi everyone, | | I have been trying to extend Rcpp with my own wrap and as templates.
Good post, wrong list. Can you please try again on rcpp-devel? You may need to subscribe first in order to post (ie pay the "trying to stop spammers tax"). Dirk | | Two issues: | | 1) I need to explicitly call wrap. Is that expected? | | So for example I wrote this specialization: | | template<> SEXP Rcpp::wrap(std::vector<TimedOptDouble> const& entries) { | std::vector<double> sec_times; | std::vector<double> doubles; | for(auto const& entry : entries) | { | sec_times.push_back(entry.GetTime().Seconds()); | TimedOptDouble::OptDouble opt_double(entry.GetOptDouble()); | if(opt_double) | doubles.push_back(*opt_double); | else | doubles.push_back(R_NaReal); | } | return List::create( | Named( "Time" ) = sec_times, | Named( "Value" ) = doubles); | } | | First of all, this returns what I believe to be a Rcpp::List object, which | seems to be converted implicitly to a SEXP. This is the typical behaviour I | know. | | Unfortunately, when making use of this template, it doesn't work | implicitly, but I need to explicitly call it. | | So for example | | SEXP GetSunPositions(SEXP a) { | std::vector<TimedOptDouble> sun_positions; | ... | return wrap(sun_positions); | } | | works, where as | | return sun_positions; | | as last line doesn't. Am I doing something wrong here? I did do the | declaration before including <Rcpp.h>. | | 2) How to make as work for own types in containers | | The other way around, one can return a std::vector<double> implicitly, but | how do I return std::vector<MyType>? I tried to define | | template<> MyType as(SEXP); | | But that didn't help, e.g. I had to write my own | | template<> std::vector<MyType> as(SEXP); | | Thanks for help | Florian | | [[alternative HTML version deleted]] | | ______________________________________________ | R-devel@r-project.org mailing list | https://stat.ethz.ch/mailman/listinfo/r-devel -- Dirk Eddelbuettel | e...@debian.org | http://dirk.eddelbuettel.com ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel