我正在使用C++ Builder,并试图将代码优先迁移到使用C++标准库,而不是Delphi VCL。
VCL具有基于TStream
类的流传输体系结构,我改用std::stream
。但是,从短期来看,我仍然需要一种“混合”使用两种流类型的方法。
我可以使用中间的std::stringstream/TStringStream
对象来做到这一点,但这似乎效率低下又麻烦。有谁有更好的建议?
编辑:
TStream提供与std::streams类似的功能,但不是从其派生的。您可以创建不同类型的流(TFileStream,TMemoryStream,TStringStream),并向它们读写数据。参见Embarcadero docwiki TStream reference。
编辑:
示例-想象我有一个std::ostream,我已经写了一些东西,现在我想使用TJPEGImage.SaveToStream(str:TStream)将JPEG图像附加到它。而且,稍后我将要从std::istream阅读它...
最佳答案
也许您可以编写类似于VCL TStreamAdapter的适配器/代理类,该类为TStream实现IStream接口(interface)。