boost 1.58 - a short overview

published at 17.04.2015 16:54 by Jens Weller

A new version of boost has been released, version 1.58 brings two new libraries and a lot of bug fixes (fixes for 28 libraries are listed). Also, a good resource for boost is the new and updated book about the boost libraries from Boris Schäling, which is also available online. Not included in this release is boost.compute, a library earlier this year accepted into boost and presented at C++Now, maybe it will be in 1.59 later this year.

Lets have a short view on the new libraries:

Endian

"Endian provides facilities to manipulate the endianness of integers and user-defined types." The library is header only and has C++11 and C++03 features, such as noexcept and scoped enums. The library is capable of using compiler buildin intrinsics, which can be suppressed with defining BOOST_ENDIAN_NO_INTRINSICS. It is planned to submit this library in a future version for standardization.

The connection graph for boost.endian in boost:

../../files/blog/bda/endian.png

This graphs shows the integration of the endian library into boost.

Sort

A generic library, that will use a better sorting algorithm, when your container has more then a 1000 elements. Otherwise it will use a fallback to std::sort. The library only works on random access iterators. The library implements the spreadsort algorithm, a hybrid of radix and comparison based sorting. The sort library also comes with the algorithms integer_sort, float_sort and string_sort, each of them can be provided a functor for comparing the underlying data type.

The connection graph for boost.sort in boost:

../../files/blog/bda/sort.png

Again, please note, that is the maximum of all connections and dependencies boost.sort has.