Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases now! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon

Boost 1.68.0, a set of C++ source libraries, is released, debuting YAP!

Save for later
  • 3 min read
  • 10 Aug 2018

article-image

After the release of Boost 1.67.0 in April earlier this year, Boost 1.68.0 is now out with a new library named YAP and few updates in the libraries such as, Beast, Fusion, and GIL to name a few.

Boost provides peer-reviewed portable C++ source libraries for generic programming, concurrency programming, metaprogramming, data structures, testing, and many more tasks and structures.

YAP: The new expression template library


YAP is an expression template library that aims to help developers in writing optimized and maintainable code. Some of its features include:

  • Member and non-member functions on ExpressionTemplates and Expressions can be added with compact macros.
  • A reference template that models ExpressionTemplate exists for prototyping or experimentation.
  • The evaluation done by Boost.YAP closely matches the semantics of built-in C++ expressions, enabling clearer understanding of the semantics of expression evaluation.
  • Expressions can be transformed explicitly in a user-defined way with the help of overloaded call operators in a transform class. The evaluate(transform(expr)) idiom is expected to be one of the most common ways of using YAP to manipulate and evaluate expressions.
  • Boost.YAP provides functions that manipulate expressions or their subexpressions.

Updated libraries in Boost 1.68.0


Beast:

  • An executor work guard is added in all composed operations used in the implementation. To avoid crashes related to asynchronous completion handlers, users are encouraged to upgrade.


Fusion:

  • A workaround is added for ambiguous call of fusion::deque constructor on GCC 4.4/c++0x.
  • A bug with C-style array is now fixed.
  • Fixed a fusion::for_each signature to take functor by value. This may break existing code with non-copyable (non-movable) functor.
  • Unintentional MPL placeholder substitution bug on fusion::transform is now fixed.


GIL:

  • C++11-compliant compiler is now required by the library.
  • Its I/O extensions have been entirely rewritten.
  • Unlock access to the largest independent learning library in Tech for FREE!
    Get unlimited access to 7500+ expert-authored eBooks and video courses covering every tech area you can think of.
    Renews at $19.99/month. Cancel anytime


Math:

  • Added support for arbitrary precision complex valued quadrature and hence contour integration.
  • Added support for contour integrals.
  • Performance of polynomial addition is improved.


Multi-index Containers:

  • Containers of moveable but non-copyable elements can now be serialized.
  • The default constructor of multi_index_container is no longer explicit.


Test:

  • The master_test_suite_t object is no more copyable.
  • Dataset test case can now use command line parameters.


Uuid:

  • Breaking change: sha1 detail namespace header redirection for backwards compatibility was removed.
  • Added support for std::hash.
  • Added support for move semantics on random generators.
  • Properly handle EINTR when acquiring entropy.
  • Use getrandom(2) instead of getentropy(3) on linux.


These were some of the updates in Boost 1.68.0. To know more, head over to their official site.

Working with shaders in C++ to create 3D games

Understanding the Dependencies of a C++ Application

Getting Inside a C++ Multithreaded Application