我正在尝试按照这个问题的逻辑streambuf
在Rcpp
. 有人贡献了基本的行为,让我们可以写出类似的东西
Rcout << "some text" ;
我们在哪里实现xsputn
并overflow
重定向到Rprintf
功能。
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;
}
我也想实现刷新,即支持这种语法:
Rcout << "some text" << std::flush ;
我需要实现哪种方法才能使flush
操纵器在我的自定义流上工作?