版本 1.51.0
版本 1.51.0
2012年8月20日 格林尼治标准时间23:00
平台 | 文件 |
---|---|
Unix | boost_1_51_0.tar.bz2 |
boost_1_51_0.tar.gz | |
Windows | boost_1_51_0.7z |
boost_1_51_0.zip |
补丁
-
区域设置补丁 - 修复了一个导致
boost::locale::utf::utf_traits
接受一些无效 UTF-8 序列的错误,这是一个潜在的安全漏洞。
新增库
-
Context: 上下文切换库,来自 Oliver Kowalke。
更新库
-
Algorithm(算法):
-
修复了
is_sorted_until
;现在与 c++11 标准在具有重复值的范围上的行为相匹配。 -
为其余搜索算法添加了范围支持。
-
unhex
现在使用 Boost.Exception 来 segnal 错误输入。
-
-
Asio:
-
修复了
ip::tcp::iostream
和 C++11 之间的兼容性问题(#7162)。 -
用下划线修饰 GCC 属性名称,以防止与用户定义的宏交互(#6415)。
-
添加了缺少的
#include <cctype>
,某些版本的 MinGW 需要它。 -
更改为使用gcc在 ARM CPU 上的原子内置函数(如果可用)(#7140)。
-
将 strand 析构函数更改为空操作,以允许在其关联的
io_service
被销毁后销毁 strand 对象。 -
如果 SSL 引擎初始化失败,则更改 SSL 实现以抛出异常(#6303)。
-
修复了
buffered_write_stream
中的另一个回归问题(#6310)。 -
实现了各种细微的性能改进,主要针对 Linux x86 和 x86-64 平台。
-
-
Config(配置):
-
弃用了一大堆特定于 c++11 的宏,但没有命名以表明它们是特定于 c++11 的。 使用更好的名称创建了新的宏,并将旧宏与新宏配对。 更新了文档以列出已弃用的宏。
-
-
Chrono(计时):
-
#6918 由于未定义 pthread_getcpuclockid,Boost Chrono 在 HP uX 上编译失败。
-
#6241 没有 std::wstring 支持的 boost::chrono 编译问题。
-
#6987 文档和 C++11。
-
#7041 time_point.hpp 依赖于 Boost.System。
-
#7042 避免 time_point 和 duration 对 time.h 和 CLOCK_REALTIME 的依赖。
-
#7058 定义 BOOST_NO_EXCEPTIONS 时使其工作。
-
#7069 clock_string<thread_clock> 中的拼写错误。
-
#7081 boost/detail/win/basic_types.hpp 中的 WinError.h 大小写。
-
-
Geometry(几何):
-
现在应该专门针对通过指针访问的点(例如在线串中),而无需指针。 在以前的版本中,像
linestring<my_point*>
一样使用的my_point
类型必须专门化如下:template<> struct tag<my_point*>
。 现在库本身在调用 traits 类之前删除了指针,所以现在它应该是这样的:template<> struct tag<my_point>
-
整数点的交集有时是错误的,已修复
-
文档,simplify 中的参数顺序错误,已修复
-
7030 球面距离,已修复(由 Karsten Ahnert 的补丁修复)
-
-
Hash(哈希):
-
支持标准智能指针。
-
现在使用 SFINAE 实现
hash_value
,以避免在调用它时隐式转换为内置类型。 -
更新为使用新的配置宏。
-
-
Lexical cast(词法转换):
-
更好的性能,更少的内存使用
boost::array<character_type, N>
和std::array<character_type, N>
转换。 -
修复了 volatile 输入参数的错误 #7157。
-
-
Math(数学):
-
更新为使用新的配置宏。
-
-
MSM:
-
错误修复:fsm 内部表和 none(复合)事件的编译器错误。
-
错误修复:euml::defer_ 导致堆栈溢出。
-
Ratio (比率):
-
#7075 解决错误:部分特化模板参数常量“n1”的类型取决于另一个模板参数。
-
-
Regex(正则表达式):
-
更新为使用新的配置宏。
-
-
Thread(线程):
-
#4258 在 mingw/gcc 4.5 上链接 boost 线程不起作用。
-
#4885 由于对 TlsAlloc 的无效假设,在进程退出时 set_tss_data 中出现访问冲突。
-
#6931 使用 Intel 编译器和 /debug:parallel 时互斥锁永远等待
-
#7044 缺少 boost 1.50.0 头文件。
-
#7052 线程:BOOST_THREAD_PROVIDES_DEPRECATED_FEATURES_SINCE_V3_0_0 仅屏蔽 thread::operator==、thread::operator!= 前向声明,而不屏蔽定义。
-
#7066 尝试修复 current_thread_tls_key 静态初始化顺序。
-
#7074 多重定义符号 boost::allocator_arg。
-
#7078 Windows 上线程属性堆栈大小的简单 64 位警告修复
-
#7089 BOOST_THREAD_WAIT_BUG 在没有解决任何问题的情况下限制了功能
-
-
xpressive:
-
解决 cygwin 和 mingw 上有问题的宽 ctype facet。
-
解决某些 glibc 实现中缺少 __isctype 的问题。
-
op::as
不应该假设string::iterator
!=char*
. -
感谢 John Fletcher,修复了 libc++ 中
cpp_regex_traits
的断言。
-
测试过的编译器
Boost 的主要测试编译器是
-
Linux
-
GCC:4.2.4、4.3.4、4.4.3、4.5.3、4.6.2、4.7
-
GCC,C++11 模式:4.3.4、4.4.3、4.5.3、4.6.2
-
Intel:11.1、12.0、12.1
-
LLVM Clang 2.8
-
-
OS X
-
GCC:4.4
-
GCC,C++11 模式:4.4
-
Intel:11.1、12.0
-
-
Windows
-
GCC,mingw:4.4.0、4.4.7、4.5.4、4.6.3
-
Visual C++:8.0、9.0、10.0
-
-
FreeBSD
-
GCC:4.2.1,32 位和 64 位
-
Boost 的其他测试编译器包括
-
Linux
-
Clang:来自 subversion
-
LLVM Clang:3.0
-
GCC:4.2.4、4.3.4、4.4.4、4.4.7、4.5.3、4.6.2、4.6.3、4.7.0、4.7.1
-
GCC,C++11 模式:4.3.4、4.4.4、4.5.3、4.6.3
-
pgCC:11.9
-
Intel:10.1、11.1、12.0、12.1
-
Visual Age:10.1
-
-
OS X
-
Clang:来自 subversion
-
Clang,C++11 模式:来自 subversion
-
Intel:11.1、12.0
-
GCC:4.4
-
GCC,C++11 模式:4.4
-
-
Windows
-
Visual C++:8.0、9.0、10.0
-
GCC,mingw:4.4.0、4.6.3、4.7.0
-
-
AIX
-
IBM XL C/C++ Enterprise Edition:V12.1.0.0
-
-
FreeBSD
-
GCC:4.2.1,32 位和 64 位
-
-
Solaris
-
Sun:5.10
-
致谢
Beman Dawes、Eric Niebler、Rene Rivera、Daniel James、Vladimir Prus 和 Marshall Clow 管理此版本。