Fri 31 January 2025

❄️ Sane C++ January 25

SC

Welcome to the update post for January 2025!
This month has been mostly spent improving SC::Async library!

SC::Async

SC::Async has been the main focus of the month.

Simplification:

Consistency:

Features:

Stability:

Timers (AsyncLoopTimeout) improvements:

Detailed List of commits:

SC::AsyncStreams

Some minimal work as been done to the SC::AsyncStreams library as well.

One video has been recorded Showing how to move the transform stream compression operation on a background thread, using AsyncLoopWork. This video pauses (for now) the series of videos dedicated to SC::AsyncStreams.

Detailed List of commits:

SC::Foundation

SC::Foundation most notable change has been using a different approach in SC::Function.

We're now using a vtable-like approach that allows saving one entire pointer (!!) for each SC::Function instance.

The price to pay is the static initialization (that will require a mutex acquisition) and one more indirection, but it has been considered a good tradeoff.

Detailed List of commits:

SC::Time

The SC::Time library got user defined literals, some conversion between different units and differentiation between monotonic and realtime clocks.

A nasty bug regarding time normalization in SC::Time::HighResolutionCounter has been fixed too!

Detailed List of commits:

Minor changes

And these are some minor changes that don't have enough impact to deserve a dedicated comment.

Detailed List of commits: