Ich versuche, die Logik this question zu folgen, um eine benutzerdefinierte streambuf
in Rcpp
zu erstellen. Jemand trug das grundlegende Verhalten, das wir Dinge wieBenutzerdefinierte Flush-Implementierung
Rcout << "some text" ;
schreiben kann, wo wir umgesetzt xsputn
und overflow
-Rprintf
Funktion umzuleiten.
std::streamsize Rcpp::Rstreambuf::xsputn(const char *s, std::streamsize num) {
Rprintf("%.*s", num, s);
return num;
}
int Rcpp::Rstreambuf::overflow(int c) {
if (c != EOF) {
Rprintf("%.1s", &c);
}
return c;
}
Ich möchte auch implementieren Spülung, das heißt unterstützen diese Syntax:
Rcout << "some text" << std::flush ;
Welche Methode kann ich implementieren müssen, so dass der flush
Manipulator auf meiner benutzerdefinierten Stream funktioniert?
Danke. Implementiert in SVN Revision 3935 von 'Rcpp' –