[Rcpp-devel] Exposing constructors with same number of arguments with different types using Rcpp Modules

Dirk Eddelbuettel edd at debian.org
Sat May 14 17:20:07 CEST 2011


On 13 May 2011 at 11:58, Dirk Eddelbuettel wrote:
| On 13 May 2011 at 16:35, Jelmer Ypma wrote:
| | Dear Rcpp-list,
| | 
| | I'm trying to expose multiple constructors of a C++ class to R using
| | modules. Here is an example of what I want to do based on the Uniform
| | example

[...]

| | Compilation works fine (on Windows using RTools, Rcpp_0.9.4.1,
| | inline_0.3.8), but the R code cannot distinguish between two
| | constructors with the same number of arguments, but with different
| | types for the arguments and always calls Uniform(double, double). The
| 
| If I recall correctly, we have determined that this cannot work. It is one of
| these 'obvious in hindsight' issue.  Recall that R does the dispatch, and R
| cannot differentiate between  foo(double) and  foo(int)  as it is not typed.
| 
| So I think you will have to differentiate the constructors by name. Sorry
| about that, but even Rcpp modules has its limits.
| 
| And I may of course be wrong too in which case Romain may come in and
| clarify.

I got a brief word in with Romain who clarified that this ought to be
possible but may not be right now.  So stay tuned -- with some luck Romain
may be able to improve on what we currently have.

In the meantime you may have to make do with different setter functions.

Dirk

-- 
Gauss once played himself in a zero-sum game and won $50.
                      -- #11 at http://www.gaussfacts.com


More information about the Rcpp-devel mailing list