#include <sstream>
using namespace std;
const char* GetHugeString();
int main()
{
const char* p = GetHugeString();
//
// Below will copy the huge string into a std::string object!
//
istringstream sstrm{p};
return {};
}
istringstream
巨大な文字列のコピーは必要ありません。ヌルで終了する文字列ポインタで十分です。しかし、istringstream
のctor
は、その引数としてstd::string_view
(C++ 1zのみ)ではなく、std::string
となります。istringstreamをより効率的にするには?
std::istringstream
をこのような場合に効率的にする回避策はありますか?
これは理由はわかりませんが、内部ストレージが 'string_view'を受け入れない' stringbuf'によってバックアップされているため、これはサポートされていないと思われます。 –