[Rcpp-devel] exporting void test(void) function

Dirk Eddelbuettel edd at debian.org
Tue Dec 31 05:36:19 CET 2013

Hi Tim,

Nice to see you here!  

On 30 December 2013 at 22:15, Tim Keitt wrote:
| Apologies if this is the wrong list for user questions -- happy to be
| redirected -- I did not see it immediately.

And it is absolutely the right list: rcpp-devel as in our understanding
'using' of Rcpp means developing with it.
| Am I correct in noting that
| // [[Rcpp::export]]
| void test(void)
| {
|     // do something
| }
| does not generate any code in RcppExports.R?

Yes, 'void foo(void) { ... }' is a corner case that is not well covered by
Rcpp Attributes. At the end of the day, we always convert into 'SEXP
.Call("foo", SEXP a, SEXP b, ...)' so the args in, result out structure is
pretty tight.

I have done 'bool foo(int ignoreme) { ... }'  to work around it, or just
returned NULLs. If you write explicit converters (maybe by manually
postprocessing what RcppExports.cpp has) you could approximate it (by adding
the require input / output args later) but the main issue is that Attributes
does not do it.  Maybe JJ will chime in with some comments.

Cheers, Dirk

Dirk Eddelbuettel | edd at debian.org | http://dirk.eddelbuettel.com

More information about the Rcpp-devel mailing list