Documentation
Legacy
Tips

Latest Release: v2.0.0

Released: Jun 28, 2025
Sources: changes  |  zipball  |  tarball
Changes:

What’s Changed

  • Factored out the copy-on-write library into a stand-alone library.
  • Adds a call to pre_exit() on each example using default_executor by @fpelliccioni in https://github.com/stlab/libraries/pull/500
  • new API: bool packaged_task::canceled() const by @KevinHopps in https://github.com/stlab/libraries/pull/498
  • Changes to support C++14 and fixed missing include file (#501) by @sean-parent in https://github.com/stlab/libraries/pull/503
  • Fix name conflict with boost math in Boost <= 1.76 by @fpelliccioni in https://github.com/stlab/libraries/pull/499
  • Changed CMake paths to be robust to subprojects by @laserallan in https://github.com/stlab/libraries/pull/507
  • Fixes to futures by @sean-parent in https://github.com/stlab/libraries/pull/505
  • Fix typo from main_scheduler_type to main_executor_type by @nickpdemarco in https://github.com/stlab/libraries/pull/516
  • Revisit Reduce by @sean-parent in https://github.com/stlab/libraries/pull/521
  • Add check for C++20, make ambiguous case assume 23 by @nickpdemarco in https://github.com/stlab/libraries/pull/522
  • Restore Qt5 compatibility by @touraill-adobe in https://github.com/stlab/libraries/pull/524
  • Minor comment fix by @sean-parent in https://github.com/stlab/libraries/pull/526
  • Requiring executor tasks are noexcept. by @sean-parent in https://github.com/stlab/libraries/pull/528
  • Removing use of boost::variant and optional from stlab now that it has moved to C++17 by @thinlang in https://github.com/stlab/libraries/pull/531
  • Updating documentation and documentation system to hyde 2.0 by @sean-parent in https://github.com/stlab/libraries/pull/534
  • Some minor fixes by @sean-parent in https://github.com/stlab/libraries/pull/537
  • General Cleanup by @sean-parent in https://github.com/stlab/libraries/pull/539
  • Fix to use after move by @sean-parent in https://github.com/stlab/libraries/pull/540
  • namespace version bump by @sean-parent in https://github.com/stlab/libraries/pull/541
  • Update layout-terminology.md by @sean-parent in https://github.com/stlab/libraries/pull/542
  • Update layout-terminology.md by @sean-parent in https://github.com/stlab/libraries/pull/543
  • add move implementation which asserts on providing const argument by @dhaibatc in https://github.com/stlab/libraries/pull/544
  • Static Analysis by @sean-parent in https://github.com/stlab/libraries/pull/546
  • Nix an unused matrix element by @dabrahams in https://github.com/stlab/libraries/pull/548
  • Update code base to pass clang-tidy by @sean-parent in https://github.com/stlab/libraries/pull/552
  • Reworking reduction by @sean-parent in https://github.com/stlab/libraries/pull/551
  • Restructuring to simplify Windows build (and all builds) by @sean-parent in https://github.com/stlab/libraries/pull/553
  • Minor fixes to await and await docs. by @sean-parent in https://github.com/stlab/libraries/pull/555
  • Add STLAB_BUILD_LIBRARY CMake option to build a library by @gbottesi in https://github.com/stlab/libraries/pull/556
  • always_true is defined statically in 2 tests. by @geoffoxholm in https://github.com/stlab/libraries/pull/561
  • Use weaker memory ordering for COW count. by @sean-parent in https://github.com/stlab/libraries/pull/563

New Contributors

  • @KevinHopps made their first contribution in https://github.com/stlab/libraries/pull/498
  • @laserallan made their first contribution in https://github.com/stlab/libraries/pull/507
  • @touraill-adobe made their first contribution in https://github.com/stlab/libraries/pull/524
  • @thinlang made their first contribution in https://github.com/stlab/libraries/pull/531
  • @dhaibatc made their first contribution in https://github.com/stlab/libraries/pull/544
  • @gbottesi made their first contribution in https://github.com/stlab/libraries/pull/556
  • @geoffoxholm made their first contribution in https://github.com/stlab/libraries/pull/561

Full Changelog: https://github.com/stlab/libraries/compare/v1.7.1…v2.0.0

For older releases, the full list is available on GitHub.

Posts

  • Forest: An Introduction

    Hierarchies. Everyone uses them, so why are they difficult to maintain? In this article we explore forest, a data structure that makes hierarchies self-maintainable, so you can go back to thinking about the data they contain.

  • Small Object Optimization for Polymorphic Types

    At Meeting C++ 2017 I presented a lightning talk Polymorphic Task Template in Ten which showed an easy way to implement a polymorphic task template, similar to std::function, with a small object optimization in 10 minutes.

    Unfortunately, the small object optimization, as described, leads to undefined behavior. As a general rule, you cannot store an object of one type in memory and read it back as another, even if the other type is the objects base class (there are exceptions to this rule, but they do not apply to this situation).

    This tip looks at the details of the issue and describes a solution which turns out to be more efficient although it does require slightly more, and more complex, code to implement. A small object optimization for polymorphic types is a very useful construct so it important to understand how it can be done correctly.

  • New Concurrency Library

    A new concurrency library was added as a first one to this new stlab instance.

    This library provides an alternative to the C++11/14 and upcoming C++17 TS futures. As well it provides an implementation of channels that allow the creation of process graphs.

subscribe via RSS