boost 1.60 - a short overview
published at 18.12.2015 16:40 by Jens Weller
Yesterday boost 1.60 was released, and it brings a few important details and changes to the boost users. Plus one new library: the Variadic Data Macro library by Edward Diener.
VMD is like Boost.Preprocessor, a library for working with the preprocessor and makes implementing complex macros easier. VMD is specialized on using variadic macros, its goal is to make working with variadic macros easier and improve support over what boost can already do via its PP library. The library allows you to define easily your own macros which operate on the arguments given through a variadic macro. You can treat these variadic macro parameters as a sequence, array, list or tuple. Further its "type support" extends to numbers, identifiers and other useful types, such as an empty or unknown type.
Changes in boost
While VMD is a very specific library, this version brings a number of interesting updates and fixes to the boost libraries. A short list of my favorites:
- boost::atomic now forces proper alignment
- container has now polymorphic memory resources + basic_string supports C++11 back/front.
- 4 new functions added: lexically_normal, lexically_relative, relative, weakly_canonincal
- some updates from the filesystem TS have been implemented
- c++11 move semantics support
- adding functions renamed in the TS, while keeping support for the previous name.
- path has now size() method
- Fusion containers + fusion::nview now support C++11 variadic templates, fusion::fold is SFINAE friendly now
- Locale implemented a generic codecvt facet and added a general utf8_codecvt facet.
- PreDef can now detect SIMD Hardware
- boost.test 3.1
- boost::future && boost::future::then have received some important bug fixes
So 1.60 is an interesting release, still, a lot of libraries accepted into boost have yet not been released, next year is going to be interesting with lots of new libraries and features coming to boost.