[Rcpp-devel] using Rcpp modules to expose class

Anwar Ludin anwar.ludin at riskcetera.com
Mon May 13 14:59:40 CEST 2013


Hello,

I'm trying to expose 2 classes from a Rcpp module:

class Portfolio{
   private:
      std::string portfolioId, description;
   public:
       Portfolio(std::string portfolioId, std::string description)
       : portfolioId(portfolioId), description(description) {}

       std::string getPortfolioId() {return portfolioId;} const
       void setPortfolioId(const std::string&) {this->portfolioId = 
portfolioId;}

       std::string getDescription() {return description;} const
       void setDescription(const std::string& 
description){this->description = description;}
};

class PortfolioDataAccess{
     private:
     mongo::DBClientConnection c;

     public:
     PortfolioDataAccess();
     virtual Portfolio read(std::string portfolioId);
     virtual void create(std::string portfolioId, std::string description);

   };




RCPP_MODULE(riskceteraPortfolio) {
   class_<riskcetera::Portfolio>( "Portfolio" )
   .constructor<std::string, std::string>()
   .method("id", &riskcetera::Portfolio::getPortfolioId)
   .method("description", &riskcetera::Portfolio::getDescription)
   ;

class_<riskcetera::PortfolioDataAccess>("PortfolioAccess")
   .constructor()
   .method("read", &riskcetera::PortfolioDataAccess::read)
   ;
}

When trying to compile the module I get the following error:

/riskcetera/home/aludin/R/x86_64-pc-linux-gnu-library/3.0/Rcpp/include/Rcpp/internal/wrap.h:474:7: error: no viable conversion from 'const riskcetera::Portfolio' to 'SEXP' (aka 'SEXPREC *')
         SEXP x = object ;







-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/rcpp-devel/attachments/20130513/e0028bf6/attachment.html>


More information about the Rcpp-devel mailing list