std::stringstream
的初始化构造函数接受 const string&
作为参数:
explicit stringstream (const string& str,
ios_base::openmode which = ios_base::in | ios_base::out);
在 C++98 中,这个接口是合理的,但自从 C++17 开始,我们有了std::string_view
作为代替字符串的更便宜的选择。而 std::stringstream
类不修改它所接受的字符串,也不拥有该字符串,并且不要求它以 null 结尾。那么为什么不添加另一个构造函数重载,接受std::string_view
呢?是否存在任何障碍使得这种解决方案不可能(或不合理),而采用 Boost::Iostreams 等替代方案呢?