# [Rcpp-devel] Rprintf equivalent for std::cout ?

Dirk Eddelbuettel edd at debian.org
Sun Nov 11 17:51:36 CET 2012

On 11 November 2012 at 17:34, Steffen Neumann wrote:
| Hi,
|
| I am not certain the question in the subject
| is grammatically correct. Nevertheless, R and Bioconductor
| are more and more complaining about symbols it doesn't like [1],
| such as printf, exit, std::cerr or std::cout.

CRAN got strict on that a while back, yes.

| While the former are rather simple to search&replace
| with Rprintf or something equivalent, I am looking for Rcpp streams
| which are the equivalent to cout and cerr, e.g.
|
| 	Rcpp::rout << "Hi world" << std::endl;
| or	Rcpp::rerr << "Damn, s**t hit the fan!" << std::endl;

>From the NEWS entry for release 0.9.8:

\item Applied patch by Jelmer Ypma which adds an output stream class
'Rcout' not unlike std::cout, but implemented via Rprintf to
cooperate with R and its output buffering.

We will have a new release 0.9.16 "real soon now" and will also have Rcerr
thanks to something Romain put into SVN today.

| I need that if I want to wrap 3rd party source code
| that was not written with being part of an R library
| in first place. Boost stuff comes to mind here ...
|
| I'd love to be able to
| find . -type f -exec sed -i -e 's/std::cerr/Rcpp::rerr/g' \{\} \;
| to fix that. Or did I miss anything obvious ?

That may still fail _as a global substitution_ as we do not have all iostream
manipulators implemented.  Contributions would be welcomed!

Dirk

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