[Rcpp-devel] Rcpp : passing user-defined c++ class

Yousra El Bachir yousra.elbachir at gmail.com
Tue Feb 21 14:15:53 CET 2017


Hi all,

I am calling from R (say funcR) a c++ function (say funcCpp) which needs
either some programmer-defined c++ class (say programmerClassCpp1, 2,
etc...) or a user-defined c++ class (say userClassCpp). Here is an
illustration of what I am doing:

funcR(..., class="ClassCpp"){

  # do something and then call the c++ function

   funcCpp(class);
}

funcCpp(std::string classCpp){

  switch(classCpp){
      case "class1" : point to the programmer defined c++
class programmerClassCpp1; break;
      case "class2" : point to the programmer defined c++
class programmerClassCpp2; break;
      case "new": point to the user defined c++ class userClassCpp; break;
      default : Rcpp::stop("not supported class");
     };
}

This post

  http://gallery.rcpp.org/articles/passing-cpp-function-pointers/

reflects what I need for a function and I am wondering whether it is
possible to do this for a class. The obvious solution is to replicate
manually what has been done in the post to each method of the class (for
instance, work on a vector of functors to the class methods), but I don't
see it as the optimal solution.

Many thanks for any hint,
Yousra
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/rcpp-devel/attachments/20170221/1f7461ca/attachment.html>


More information about the Rcpp-devel mailing list