Documentation
|
Legacy
|
Tips
|
Latest Release: v2.0.0a9
Released: Jan 28, 2025Sources: changes | zipball | tarball
Changes:
Full Changelog: https://github.com/stlab/libraries/compare/v2.0.0a8…v2.0.0a9
- Rewrite and remove bad
when_any
tests that could deadlock - Updated README with a complete list of
STLAB_
CMake options - Added an option to run
STLAB_
with the minimal default executor thread pool size for testing - Corrected docs for
invoke_waiting()
- Added equality comparison to move_only test model
- Corrected all usage of
invoke_waiting()
- Attempted to use iwyu - minimal success
- Split out tuple_algorithm_test (it was included twice in futures and channels)
- Added STLAB_MINIMAL_TASK_POOL option for testing
- Changed
STLAB_NO_STD_COROUTINE
in config.hpp toSTLAB_STD_COROUTINE()
to avoid mistakes in usage.
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