Program Listing for File mex_workaround.hxx¶
↰ Return to documentation for file (Utils/mex_workaround.hxx)
#ifdef UTILS_OS_LINUX
class mystream : public std::streambuf {
protected:
virtual
std::streamsize
xsputn(const char *s, std::streamsize n) override
{ mexPrintf("%.*s", n, s); mexEvalString("drawnow;"); return n; }
virtual
int
overflow(int c=EOF) override
{ if (c != EOF) { mexPrintf("%.1s", &c); } return 1; }
};
class scoped_redirect_cout {
public:
scoped_redirect_cout()
{ old_buf = std::cout.rdbuf(); std::cout.rdbuf(&mout); }
~scoped_redirect_cout()
{ std::cout.rdbuf(old_buf); }
private:
mystream mout;
std::streambuf *old_buf;
};
static scoped_redirect_cout mycout_redirect;
#endif