Skip to content
Back to formatted view

Raw Message

Message-ID: <19660.11493.678897.477117@max.nulle.part>
Date: 2010-10-30T14:34:13Z
From: Dirk Eddelbuettel
Subject: [Rcpp-devel] Accessing T of RcppVector<T>
In-Reply-To: <AANLkTimCH=xLWgSevsxjwmnCxXzQckri-DN8_P8D65Vd@mail.gmail.com>

On 30 October 2010 at 13:02, Johannes Egner wrote:
| > 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).
| >
| 
| I was imprecise here: it does work using the Rterm connector in
| Eclipse/StatET, but not with the RJ-connector. (For those who use this IDE.)
| 
| It seems to boild down to contingent (and annoying) implementation details
| that are far beyond Rcpp's control -- I suspect my question really doesn't
| belong here.

I would agree :)  Rcpp does not special here --- we not define or redefine
anything related to input/output.  

And the "Writing R Extensions" manual clearly states it:

   5.6 Interfacing C++ code
   ========================
   
   [...]
   
      Using C++ iostreams, as in this example, is best avoided.  There is
   no guarantee that the output will appear in the R console, and indeed it
   will not on the R for Windows console.  Use R code or the C entry points
   (*note Printing::) for all I/O if at all possible.

so the line you were referring to actually came from simple debugging output,
and was authored by Sebastian to whom I replied with a fix.

So in short: if you must print, use Rprintf, or REprintf for stderr, as
detailed in section "6.5 Printing" of Writing R Extensions.

Regards, Dirk

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