BOOST_ASSERT
代替assert
。此版本修复了很多问题,几乎所有修复都是由 Steven Watanabe 完成的。
文件描述符修复
file_descriptor
、file_descriptor_source
和 file_descriptor_sink
的新构造函数和open
方法,从文件描述符/句柄创建。有关详细信息,请参见文档。如果您定义了BOOST_IOSTREAMS_USE_DEPRECATED
,则旧方法仍然可用(#3517)。BOOST_IOSTREAMS_DECL
添加到 file_descriptor_source
和 file_descriptor_sink
,修复了它们在动态库中的使用(#4335)。file_descriptors
对std::ios_base::openmode
的处理,以匹配std::fstream
。特别是,如果传递了std::ios_base::trunc
,则截断现有文件(#3323)。std::ios_base::app
(#3323)。压缩/解压缩修复
bzip2_decompressor
中,在意外文件结尾处抛出异常,而不是进入无限循环(#2783)。gzip_decompressor
成为DualUseFilter
(#1579)。bzip2_decompressor
处理多个连接的流(#3853)。其他修复
aggregate_filter
支持宽字符(#3851)。symmetric_filter
用wchar_t
编译(#3279)。boost/iostreams/detail/resolve.hpp
在 xlc 上的编译。multichar_dual_use_filter_tag
的定义(#3689)。concept_adapter
支持自定义char_traits
(#2356)。direct_streambuf
和indirect_streambuf
在打开时被正确重置(#4102)。basic_file
和basic_file_sync
成为Flushable
(#2998)。mapped_file
文档化私有映射(#1612)。unique_path
而不是tmpnam
,使测试更可靠(#2325)。更多修复。
write_device_impl<ostream_tag>
(#3839)。position_to_offset
中,只有在计算了_Myoff
后才将其强制转换为stream_offset
(#3969)。ptrdiff_t
在std
中(#2505)。修复了许多未解决的问题。感谢 Richard Smith 对这些更改的贡献。
boost::throw_exception
抛出异常(#2094)。buffer_size
和pback_size
参数(#2894)。boost::ref(std::istream)
(#3011)。restrict
和slice
中的一些边界检查。check
的宏替换。一些未发布的旧开发。在下一个版本中,仍有几个需要修复的开放问题。
tee
支持输入流(#791)。1. close
的语义已修改
in
或out
之外的std::ios_base::openmode
调用close
已被弃用。close
重载,它接受单个 Device 参数。close
调用 pop
。这些更改会破坏一些现有的代码。它们是解决先前规范中导致许多报告的错误的不一致性的必要步骤。
2. 函数模板 slice
被引入作为 restrict
的别名,适用于将restrict
视为关键字的平台。
3. 修复了许多错误,其中许多与 close
、copy
和 文件描述符 相关。
© Copyright 2008 CodeRage, LLC
© Copyright 2004-2007 Jonathan Turkanis
根据 Boost 软件许可证版本 1.0 分发。 (参见附带的 LICENSE_1_0.txt 文件或在 https://boost.ac.cn/LICENSE_1_0.txt 上复制)