[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