matlab::engine::StreamBuffer
ストリーム バッファーの定義
説明
std::basic_streambuf<char16_t>
の型定義。
例
この例では、MATLABEngine::eval
メンバー関数による MATLAB® 関数の評価から出力を返すための、文字列バッファーを定義します。この関数は matlab::engine::StreamBuffer
由来のバッファーを使用して、MATLAB からの出力を C++ に返します。
#include "MatlabEngine.hpp"
#include "MatlabDataArray.hpp"
#include <iostream>
using namespace matlab::engine;
using SBuf = std::basic_stringbuf<char16_t>;
void printFromBuf(const std::shared_ptr<SBuf> buf)
{
//Get text from buf
auto text_ = buf->str();
std::cout << "*" << convertUTF16StringToUTF8String(text_)
<< "*" << std::endl;
}
int main() {
//Create Array factory
matlab::data::ArrayFactory factory;
// Connect to named shared MATLAB session started as:
// matlab -r "matlab.engine.shareEngine('myMatlabEngine')"
String session(u"myMatlabEngine");
std::unique_ptr<MATLABEngine> matlabPtr = connectMATLAB(session);
auto outBuf = std::make_shared<SBuf>();
auto errBuf = std::make_shared<SBuf>();
matlabPtr->eval(u"matlab.engine.engineName", outBuf, errBuf);
printFromBuf(outBuf);
printFromBuf(errBuf);
return 0;
}
バージョン履歴
R2017b で導入