Boost.Formatが、lib 自体によって管理される動的バッファーの代わりに、出力として固定幅/事前割り当てバッファーの使用をサポートするかどうか疑問に思っていましたか?
つまり、通常は次のようにします。
boost::format myfmt("arg1: %1% / arg2: %2%");
// e.g.:
cout << (myfmt % 3.14 % 42);
// or
string s = boost::str( myfmt % "hey!" % "there!");
そのため、Boost:Format lib は自動的に十分なスペースを割り当て、「出力バッファー」を管理します。
Boost.Format で事前定義された非動的バッファを使用する方法があるかどうか疑問に思っていました。つまり、次のようなものです。
const size_t buf_sz = 512;
char big_enough[buf_sz];
boost::format myfmt("arg1: %1% / arg2: %2%");
myfmt.attach_buffer(big_enough, buf_sz);
myfmt % "hey!" % "there!"
// big_enough buffer now contains the result string
例、ドキュメント、ソースをふるいにかけるだけでよいことはわかっていますが、時間のatmが不足していることは別として。(そして、何かを見落としている可能性) を知ることは興味深いでしょう: それが不可能な場合、誰かがその理由を説明できれば (特定の理由がある/ある場合)、それは意図的なものでしたか? APIとよく合っていませんか?...?
免責事項: この質問はパフォーマンスに関するものではありません。