[Rcpp-devel] Accessing T of RcppVector<T>
Johannes Egner
johannes.egner at gmail.com
Sat Oct 30 13:45:38 CEST 2010
Dirk's code relates to a question I meant to ask the experts for a while:
what's a safe and generic way to print C/C++ objects in an R session?
The background: forwarding the cout-stream in Dirk's example to R as below
doesn't work in the R-GUI on Windows (or in an IDE such as Eclipse); but it
does work if one runs an R session from the command line (that is, within
the console -- no surprise that the stream is correctly forwarded).
Additionally, there's a (confusing) variety of other print-functions that
successfully bridge the gap between C functions and the R-GUI, mostly made
available through prtutil.h. For instance, Rf_PrintValue takes an SEXP and
prints it to R using the "right format" when used in any C/C++-function,
whereas functions such as Rf_printIntegerVector take C arguments (and
somehow smuggle them into the R session). And then there's the workhorse
Rprintf (which is possibly called by Rf_printIntegerVector).
Apologies for being so vague -- I would say I am eventually looking for a
way to make the below example run in the R-GUI, both to avoid using the
abovementioned functions, and to use existing C++-code that contains
summary/debugging overloads of cout. (This may belong to Rd and not to
Rcpp-devel, but I'm not sure.)
Best, Jo
2010/10/28 Dirk Eddelbuettel <edd at debian.org>
>
> First, I (re-)define your helper function, making the argument const:
>
> > ## define our helper function, this will be passed as an include segment
> to cxxfunction()
> > inc <- 'void other(const double any) {
> + std::cout << "YAY it works, value is " << any << std::endl;
> + }
> + '
> >
> And use it:
> > num <- 42.1337
> > fun(num)
> YAY it works, value is 42.1337
> YAY it works, value is 42.1337
> [1] 0
> > fun(3.1415)
> YAY it works, value is 3.1415
> YAY it works, value is 3.1415
> [1] 0
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/rcpp-devel/attachments/20101030/c26ab56d/attachment.htm>
More information about the Rcpp-devel
mailing list