istrstream
私のニーズにぴったりでした-基本的に、固定文字バッファを取り、行を抽出getline()
してテストする簡単な方法を教えてくださいeof()
私はプロジェクトを C++ 17 準拠に切り替えています - これは廃止されistrsteam
ました - どうやら固定バッファメモリ管理を理解できない C++ プログラマが多すぎるためです (本気ですか?!)
とにかく、istringstream
は同じ使用セマンティクスを提供しますが、構築時に固定文字バッファー全体をコピーする必要があります。
これはアンチパターンです。
私が探しているのは、 のstring_view
代わりにstring
を使用する方法istringstream
、または外部で管理された固定バッファーを処理するより良い代替手段ですstringstream
(それを指すだけでよく、そのリソースの管理について心配する必要はありません。しstrstream
たように)。
現在、VS 2017 では、これは違法であり、私が正しく理解していれば、現在の最先端の C++ ではどこでも違法です (私が間違っている場合は、間違いなく訂正してください!)
std::string_view raw_view(reinterpret_cast<const char *>(raw_buffer.get()), raw_buffer.size());
std::istringstream raw_stream(raw_view);
だから - アイデア?
注: Peter Sommerlad は、C++ 標準化団体に対して、この正確なアイデアを提案しています: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0448r1.pdf