版本 1.53.0
版本 1.53.0
2013年2月4日 18:29 GMT
平台 | 文件 |
---|---|
unix | boost_1_53_0.tar.bz2 |
boost_1_53_0.tar.gz | |
windows | boost_1_53_0.7z |
boost_1_53_0.zip |
新库
-
Atomic: C++11 风格的
atomic<>
, 来自 Helge Bahmann,由 Tim Blechmann 维护。 -
Coroutine: 协程库,来自 Oliver Kowalke。
-
Lockfree: 无锁数据结构,来自 Tim Blechmann。
-
Multiprecision: 扩展精度算术类型,用于浮点、整数和有理算术,来自 John Maddock 和 Christopher Kormanyos。
-
Odeint: 求解常微分方程,来自 Karsten Ahnert 和 Mario Mulansky。
更新的库
-
Asio:
-
Bimap:
-
重构 map_view_iterator 以改进错误消息。
-
修复了使用带 info 的关系时 replace_(left/right/key/data) 的错误。
-
修复了 vector_of 和 list_of 视图
assign(size_type,value_type)
的错误。 -
修复了 vector_of 视图
operator[](size_type)
和at(size_type)
函数的返回值。
-
-
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 时,上述已弃用的函数不可用。
-
-
-
Context:
-
添加了对 ARM 上的 iOS 和 x86 (32 位) 上的 MacOS X 的支持。
-
支持 Win32 上的 SEH 覆盖保护。
-
-
Geometry:
-
错误修复
-
避免生成内部环小于最小尺寸(例如,一个或两个点)的输出多边形
-
geometry::disjoint
用于退化线段(由 Karsten Ahnert 修复) -
geometry::difference
中缺少处理相切的问题,由 H2 报告 -
修复了
geometry::for_each
以与 Lambda 一起使用 -
修复了
geometry::comparable_distance
点-线串(和 -范围,-多边形)
-
-
附加功能
-
geometry::disjoint
的组合:点/环,点/多边形,点/多多边形 -
geometry::intersects
的组合:点/环,点/多边形,点/多多边形
-
-
内部更改
-
各种算法的 specializations/not_implemented 中的更新(与早期版本中一样,这些更改仍在进行中;它们负责简化的结构、更好的错误报告和自动化文档)
-
单元测试中的修复
-
-
-
Interprocess:
-
修复了 GCC -Wshadow 警告。
-
实验性的多分配接口得到改进并再次更改。仍然不稳定。
-
用更新的 BOOST_NO_CXX11_XXX 宏替换了已弃用的 BOOST_NO_XXXX。
-
ABI 破坏性更改: 更改了节点池分配器内部结构以提高效率。
-
修复了错误 #7795。
-
-
Smart Pointers:
-
新功能
-
Glen Fernandes 提供了用于数组的 make_shared 和 allocate_shared 的实现。它们为数组实现单次分配,该数组可以使用构造函数参数或初始化列表进行初始化,以及用于默认初始化和无值初始化的重载。有关更多信息,请参阅“make_shared 和 allocate_shared 用于数组”页面。
-
shared_ptr
现在可以用于保存指向动态分配数组的指针。这是通过使用数组类型 (T[]
或T[N]
) 作为模板参数来实现的。 -
智能指针现在在 C++11 编译器上使用
explicit operator bool
。这可能会破坏将智能指针传递给接受bool
的函数,或从具有bool
返回类型的函数返回智能指针的代码。在这种情况下,请使用p != 0
或!!p
。
-
-
-
Thread:
-
已弃用功能
-
自 boost 1.53 起已弃用的功能仅在 boost 1.58 之前可用。
-
C++11 兼容性:packaged_task<R> 已弃用,请改用 packaged_task<R()>。
-
#7537 弃用 Mutex::scoped_lock 和 scoped_try_lock 以及 boost::condition
-
-
新功能
-
#6270 C++11 兼容性:从可移动可调用对象和可移动参数添加线程构造函数
-
#7279 C++11 兼容性:在系统相关函数中添加 noexcept
-
#7280 C++11 兼容性:添加 promise::...at_thread_exit 函数
-
#7281 C++11 兼容性:将 ArgTypes 添加到 packaged_task 模板。
-
#7282 C++11 兼容性:添加 packaged_task::make_ready_at_thread_exit 函数
-
#7412 C++11 兼容性:从可移动可调用对象和可移动参数添加 async
-
#7413 C++11 兼容性:当启动策略被延迟时添加 async。
-
#7414 C++11 兼容性:future::get 后置条件应为 valid()==false。
-
#7422 提供一个具有零开销性能损失的条件变量。
-
#7444 Async: 添加 make_future/make_shared_future。
-
#7540 Threads: 添加一个在销毁时加入线程的辅助类。
-
#7541 Threads: 添加一个在销毁时加入的线程包装类。
-
#7575 C++11 兼容性:由 async 创建的 future 应该在析构函数中“加入”。
-
#7587 Synchro: 添加 strict_lock 和 nested_strict_lock。
-
#7588 Synchro: 将 locks.hpp 拆分为多个文件以限制依赖性。
-
#7590 Synchro: 添加基于 Boost.ConceptCheck 的可锁定概念检查器。
-
#7591 添加可与 enable_if 一起使用的可锁定特性。
-
#7592 Synchro: 添加一个 null_mutex,它是一个空操作,并且是 UpgardeLockable 的模型。
-
#7593 Synchro: 添加一个 externally_locked 类。
-
#7594 Threads: 允许禁用线程中断。
-
-
修复的错误
-
#7464 BOOST_TEST(n_alive == 1); 由于回归测试工具中的竞争条件而失败。
-
#7657 如果重复使用 condition_variable 方法 condition notify_one 或 notify_all,则会严重影响性能和内存消耗。
-
#7665 this_thread::sleep_for 不再在线程中使用 steady_clock。
-
#7668 thread_group::join_all() 应检查其线程是否可连接。
-
#7669 thread_group::join_all() 应捕获 resource_deadlock_would_occur。
-
#7671 在 iOS 上包含 boost/thread.hpp 头文件时出错。
-
#7672 lockable_traits.hpp 语法错误:“defined”标记拼写错误。
-
#7798 boost::future set_wait_callback 线程安全问题。
-
#7808 this_thread::sleep_for 和 this_thread::sleep_until 的效果描述不正确。
-
#7812 返回值:如果调用由于 rel_time 指定的时间段已过而返回,则为 cv_status::no_timeout,否则为 cv_status::timeout。
-
#7874 编译警告:thread.hpp:342:警告:类型属性仅在类型定义时生效。
-
#7875 默认情况下不应启用 BOOST_THREAD_THROW_IF_PRECONDITION_NOT_SATISFIED。
-
#7882 来自 condition_variable::wait(unique_lock<mutex>&) 的错误异常文本。
-
#7890 thread::do_try_join_until() 缺少返回类型。
-
-
-
Unordered:
-
删除对旧的预标准可变参数对构造函数和相等性实现的支持。两者自 Boost 1.48 起已弃用。
-
更多内部实现更改,包括更简单的
erase
实现,并删除了更多已弃用的配置宏。
-
-
Utility:
-
添加了 string_ref,它是对字符连续序列的非拥有引用。
-
更新的工具
-
Boost 构建系统:
-
Qt5 工具集
-
改进的 rcc 支持 (#7576)
-
测试的编译器
Boost 的主要测试编译器是
-
Linux
-
GCC: 4.1.2, 4.2.4, 4.4.4, 4.5.3, 4.6.3, 4.7.2
-
GCC, C++11 mode: 4.4.4, 4.5.3, 4.6.3, 4.7.2
-
Intel: 11.1, 12.1
-
LLVM Clang: 2.8
-
LLVM Clang, with libc++: 3.2
-
-
OS X
-
GCC: 4.4.7
-
GCC, C++11 mode: 4.4.4
-
Intel: 11.1, 12.0
-
-
Windows
-
Visual C++: 9.0, 10.0
-
-
FreeBSD
-
GCC: 4.2.1, 32 and 64 bit
-
Boost 的其他测试编译器包括
-
Linux
-
Cray: 4.6.1
-
Clang: from subversion
-
LLVM Clang, with libc++: 3.2
-
GCC: 4.2.4, 4.4.4, 4.5.3, 4.6.3, 4.7.1
-
GCC, C++11 mode: 4.4.4, 4.5.3, 4.6.3, 4.7.1, 4.7.2
-
pgCC: 11.9
-
Intel: 10.1, 11.1, 12.1
-
Intel, C++11 mode: 13.0.1
-
Visual Age
-
-
OS X
-
Clang: from subversion
-
Clang, C++11 mode: from subversion
-
Intel: 11.1, 12.0
-
GCC: 4.4.7
-
GCC, C++11 mode: 4.4.4
-
-
Windows
-
Visual C++: 10.0, 11.0
-
Visual C++ with STLport: 9.0
-
Visual C++, Windows Mobile 5, with STLport: 9.0
-
-
AIX
-
IBM XL C/C++ Enterprise Edition: V12.1.0.1
-
致谢
Beman Dawes, Eric Niebler, Rene Rivera, Daniel James, Vladimir Prus 和 Marshall Clow 管理了此版本。