版本 1.52.0
版本 1.52.0
2012 年 11 月 5 日 16:05 GMT
平台 | 文件 |
---|---|
unix | boost_1_52_0.tar.bz2 |
boost_1_52_0.tar.gz | |
windows | boost_1_52_0.7z |
boost_1_52_0.zip |
补丁
-
Locale 补丁 - 修复了一个导致
boost::locale::utf::utf_traits
接受一些无效 UTF-8 序列的错误,这可能是一个安全漏洞。
更新的库
-
Accumulators:
-
修复长期存在的依赖跟踪错误,#7409
-
-
Config:
-
为 gcc-4.4 定义
BOOST_NO_SFINAE_EXPR
,因为发现其支持存在太多错误。
-
-
Chrono:
-
已弃用的功能
-
Boost.Chrono 1.2.x 中包含的 chrono i/o 版本已在 2.0.0 版本中完全重构
-
chrono I/O:操作符
__duration_short
、__duration_long
已弃用。您应该使用参数化形式__duration_fmt
或重命名的操作符__duration_symbol
和__duration_prefix
代替。 -
chrono I/O:
__duration_punct<>
facet 已弃用。您应该使用__get_duration_style
自由函数来获取信息,并使用__duration_units
facet 进行本地化。 -
当
BOOST_CHRONO_VERSION==2
时,上述已弃用的函数不可用。
-
-
不会修复
-
#6871 chrono_io.hpp:
operator<<(ostream& os, ...)
修改 os 的状态。版本 2 中提供的新 io 接口解决了此问题。您应该迁移到新版本。
-
-
Foreach:
-
修复 gcc 上的对齐警告。
-
-
Interprocess:
-
在
mapped_region
中添加了shrink_by
和advise
函数。 -
ABI 破坏性更改: 使用循环缓冲区索引重新实现了
message_queue
(旧行为使用有序数组,导致过多的复制)。这应该大大提高性能,但会破坏 ABI。可以通过在boost/interprocess/detail/workaround.hpp
中取消定义宏BOOST_INTERPROCESS_MSG_QUEUE_CIRCULAR_INDEX
来使用旧行为/ABI -
改进了
message_queue
插入时间,避免了常见情况下的优先级搜索(数组和循环缓冲区配置)。 -
实现了
interproces_sharable_mutex
和interproces_condition_any
。 -
改进了
offset_ptr
性能。 -
添加了整数溢出检查。
-
-
Math:
-
Phoenix:
-
使 Phoenix 可以与基于
decltype
的boost::result_of
一起使用。
-
-
Polygon:
-
包含 Voronoi 图扩展。
-
引入了新的 Segment 概念。
-
修复了编译问题。
-
-
Proto:
-
原始转换的数据参数现在可以选择具有按键索引的槽。
-
原始转换现在可以对非常量限定的临时表达式进行操作。
-
为
<iterator>
中的自由函数以及一些 Boost.Range 函数添加了可调用函数对象类型。 -
Boost.MPL 算法适用于 Proto 表达式节点。
-
proto::pass_through
原始转换现在接受可选的Domain
模板参数,用于指定结果表达式的目标域。
-
-
Thread:
-
已弃用的功能:自 boost 1.50 起已弃用的功能仅在 boost 1.55 之前可用。这些已弃用的功能将在 boost 1.52 之前默认提供。如果您不想包含已弃用的功能,您可以定义 BOOST_THREAD_DONT_PROVIDE_DEPRECATED_FEATURES_SINCE_V3_0_0。自 1.53 起,默认情况下将不再包含这些功能。自此版本起,如果您仍想包含已弃用的功能,您可以定义 BOOST_THREAD_PROVIDE_DEPRECATED_FEATURES_SINCE_V3_0_0。这些已弃用的功能仅在 boost 1.55 之前可用,也就是说您还有 1 年的时间迁移到新功能。
-
时间相关函数不使用 Boost.Chrono 库,请改用 chrono 重载。
-
-
BOOST_THREAD_VERSION==3
(自 Boost 1.53 以来的默认值) 时的破坏性更改:有些新功能共享相同的接口,但行为不同。当 BOOST_THREAD_VERSION 为 3 时,默认提供这些破坏性功能,但用户可以通过定义相应的宏来选择版本 2 的行为。对于已弃用的功能,这些破坏性功能仅在 boost 1.55 之前可用。 -
修复的错误
-
#2361
thread_specific_ptr
:记录键的性质、复杂性和原理。 -
#2797
thread_specific_ptr
的两个问题。 -
#5274 由于未定义的类,在使用 msvc8.1 的 stlport 5.1.5 下编译
future.hpp
失败。 -
#5431 Windows CE 6.0(interlocked) 中的编译错误。
-
#5752
boost::call_once()
在某些平台上不可靠。 -
#7045 Thread 库不会自动编译 date_time。
-
#7173 错误的函数名称
interrupt_point()
。 -
#7200 无法模块化构建 boost.thread。
-
#7220 gcc 4.6.2 警告 inline+dllimport 函数。
-
#7238
this_thread::sleep_for()
不响应 interrupt()。 -
#7245 与版本 3 相关的文档中的小拼写错误。
-
#7272
win32/thread_primitives.hpp
: (不必要的) 警告。 -
#7284 澄清在共享互斥锁上 lock 和 shared_lock 之间没有访问优先级。
-
#7329
boost/thread/future.hpp
在 HPUX 上无法编译。 -
#7336
BOOST_THREAD_DONT_USE_SYSTEM
不起作用。 -
#7349
packaged_task
持有对临时的引用。 -
#7350
allocator_destructor
不会销毁对象
-
-
测试的编译器
Boost 的主要测试编译器是
-
Linux
-
GCC: 4.2.4, 4.3.4, 4.4.3, 4.5.3, 4.6.2, 4.7.2
-
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.4
-
GCC, C++11 模式: 4.4.4
-
Intel: 11.1, 12.0
-
-
Windows
-
GCC, mingw: 4.4.0, 4.4.7, 4.5.4, 4.6.3, 4.7.0
-
Visual C++: 8.0, 9.0, 10.0
-
-
FreeBSD
-
GCC: 4.2.1, 32 和 64 位
-
Boost 的附加测试编译器包括
-
Linux
-
Cray: 8.0
-
Clang: 来自 subversion
-
GCC: 4.2.4, 4.3.4, 4.4.4, 4.5.3, 4.6.2, 4.6.3, 4.7.0, 4.7.1, 4.7.2
-
GCC, C++11 模式: 4.3.4, 4.4.4, 4.5.3, 4.6.3, 4.7.1
-
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.4
-
GCC, C++11 模式: 4.4.4
-
-
Windows
-
Visual C++: 8.0, 9.0, 10.0, 11.0
-
Visual C++ with STLport: 9.0
-
Visual C++, Windows Mobile 5, with STLport: 9.0
-
GCC, mingw: 4.4.0, 4.4.7, 4.5.4, 4.6.3, 4.7.0
-
-
AIX
-
IBM XL C/C++ Enterprise Edition: V12.1.0.0
-
-
FreeBSD
-
GCC: 4.2.1, 64 位
-
-
Solaris
-
Sun: 5.10
-
致谢
Beman Dawes, Eric Niebler, Rene Rivera, Daniel James, Vladimir Prus 和 Marshall Clow 管理了此版本。