Sourcetrail (Fork) 2025.12.8 released
Hi everybody,
Sourcetrail 2025.12.8, a fork of the C++/Java source explorer, has been released with these changes:
C++: Add indexing of structured binding declarations
C++: Add indexing of
GUI: Fix error/status view not cleared between indexing
C/C++: Replace msvc mulitithreading library switches with corresponding clang switches
C/C++: Add Visual Studio 2026 support
Database: Enable simple database performance improvement
https://redd.it/1r668nj
@r_cpp
Hi everybody,
Sourcetrail 2025.12.8, a fork of the C++/Java source explorer, has been released with these changes:
C++: Add indexing of structured binding declarations
C++: Add indexing of
auto prvalue castsGUI: Fix error/status view not cleared between indexing
C/C++: Replace msvc mulitithreading library switches with corresponding clang switches
C/C++: Add Visual Studio 2026 support
Database: Enable simple database performance improvement
https://redd.it/1r668nj
@r_cpp
GitHub
Release 2025.12.8 · petermost/Sourcetrail
Changes
C++: Add indexing of structured binding declarations
C++: Add indexing of auto prvalue casts
GUI: Fix error/status view not cleared between indexing (#51)
C/C++: Replace msvc mulitithreadi...
C++: Add indexing of structured binding declarations
C++: Add indexing of auto prvalue casts
GUI: Fix error/status view not cleared between indexing (#51)
C/C++: Replace msvc mulitithreadi...
C++26: std::is_within_lifetime
https://www.sandordargo.com/blog/2026/02/18/cpp26-std_is_within_lifetime
https://redd.it/1ragm1s
@r_cpp
https://www.sandordargo.com/blog/2026/02/18/cpp26-std_is_within_lifetime
https://redd.it/1ragm1s
@r_cpp
Sandor Dargo’s Blog
C++26: std::is_within_lifetime
When I was looking for the next topic for my posts, my eyes stopped on std::is_within_lifetime. Dealing with lifetime issues is a quite common source of bugs, after all. Then I clicked on the link and I read Checking if a union alternative is active. I scratched…
I made a minimal SDL3 starter template with CMake and vcpkg — cross-platform, no bundled libs
Been doing C++ game dev for a while and got tired of setting up the same boilerplate every time I started a new SDL project. Put together a clean starter template with SDL3, SDL3_image, and SDL3_ttf managed via vcpkg so dependencies just work on Linux, macOS, and Windows.
Includes a basic SDLWindow class, hardware-accelerated renderer, and a game loop ready to go. Nothing fancy, just a solid starting point.
https://github.com/Tanner-Davison/sdl3-starter-template
Happy to answer questions about the setup or take feedback on the structure.
https://redd.it/1rajyp5
@r_cpp
Been doing C++ game dev for a while and got tired of setting up the same boilerplate every time I started a new SDL project. Put together a clean starter template with SDL3, SDL3_image, and SDL3_ttf managed via vcpkg so dependencies just work on Linux, macOS, and Windows.
Includes a basic SDLWindow class, hardware-accelerated renderer, and a game loop ready to go. Nothing fancy, just a solid starting point.
https://github.com/Tanner-Davison/sdl3-starter-template
Happy to answer questions about the setup or take feedback on the structure.
https://redd.it/1rajyp5
@r_cpp
GitHub
GitHub - Tanner-Davison/sdl3-starter-template: SDL3 starter template for C++ game development. CMake + vcpkg. Cross-platform: Linux…
SDL3 starter template for C++ game development. CMake + vcpkg. Cross-platform: Linux, macOS, Windows. - Tanner-Davison/sdl3-starter-template
BitFields API: Type-Safe Bit Packing for Lock-Free Data Structures
https://rocksdb.org/blog/2025/12/31/bit-fields-api.html
https://redd.it/1ra6tux
@r_cpp
https://rocksdb.org/blog/2025/12/31/bit-fields-api.html
https://redd.it/1ra6tux
@r_cpp
RocksDB
BitFields API: Type-Safe Bit Packing for Lock-Free Data Structures
Modern concurrent data structures increasingly rely on atomic operations to avoid the overhead of locking. A valuable but under-utilized technique for maximi...
Parallel C++ for Scientific Applications: Tasks & Concurrency (2nd Part)
https://www.youtube.com/watch?v=l-QUaAH_JJs
https://redd.it/1r9ulqk
@r_cpp
https://www.youtube.com/watch?v=l-QUaAH_JJs
https://redd.it/1r9ulqk
@r_cpp
YouTube
CSC4700-Tasks & Concurrency (2nd Part)
This lecture continues a discussion on task-based parallelism in C++, focusing on asynchronous parallelism and unique methods for mitigating scalability issues in fork-join parallelism. It introduces extensions to standard futures implemented in HPX, a C++…
Problems with a weak tryLock operation in C and C++ standards
https://forums.swift.org/t/se-0512-document-that-mutex-withlockifavailable-cannot-spuriously-fail/84789/3
https://redd.it/1r94jgk
@r_cpp
https://forums.swift.org/t/se-0512-document-that-mutex-withlockifavailable-cannot-spuriously-fail/84789/3
https://redd.it/1r94jgk
@r_cpp
Swift Forums
SE-0512: Document that Mutex.withLockIfAvailable(_:) cannot spuriously fail
Hello, Swift community. The review of SE-0512: Document that Mutex.withLockIfAvailable(_:) cannot spuriously fail begins now and runs through March 2nd, 2026. Reviews are an important part of the Swift evolution process. All review feedback should be either…
MSVC Build Tools 14.51 Preview released
https://devblogs.microsoft.com/cppblog/microsoft-c-msvc-build-tools-v14-51-preview-released-how-to-opt-in/
https://redd.it/1r8ufqi
@r_cpp
https://devblogs.microsoft.com/cppblog/microsoft-c-msvc-build-tools-v14-51-preview-released-how-to-opt-in/
https://redd.it/1r8ufqi
@r_cpp
Microsoft News
Microsoft C++ (MSVC) Build Tools v14.51 Preview Released: How to Opt In
Today we are releasing the first preview of the Microsoft C++ (MSVC) Build Tools version 14.51. This update, shipping in the latest Visual Studio 2026 version 18.4 Insiders release, introduces many C++23 conformance changes, bug fixes, and runtime performance…
Learn C++ by Example • Frances Buontempo & Matt Godbolt
https://youtu.be/PXKICIiXEUM?list=PLEx5khR4g7PJbSLmADahf0LOpTLifiCra
https://redd.it/1r8yslh
@r_cpp
https://youtu.be/PXKICIiXEUM?list=PLEx5khR4g7PJbSLmADahf0LOpTLifiCra
https://redd.it/1r8yslh
@r_cpp
YouTube
Learn C++ by Example • Frances Buontempo & Matt Godbolt • GOTO 2026
This interview was recorded for the GOTO Book Club. #GOTOcon #GOTObookclub
http://gotopia.tech/bookclub
Check out more here:
https://gotopia.tech/episodes/426
Frances Buontempo - Consultant, Developer & Author of "Learn C++ by Example" @FrancesBuontempo…
http://gotopia.tech/bookclub
Check out more here:
https://gotopia.tech/episodes/426
Frances Buontempo - Consultant, Developer & Author of "Learn C++ by Example" @FrancesBuontempo…
Experimental adaptive sort - matches std::sort on random input, 2-8x faster on structured data
Hi all,
I’ve been developing an adaptive sorting algorithm, tentatively called **JesseSort**, which aims to exploit partial order in input data while still being competitive with standard library sorts on random input. I’m looking for feedback on design and potential adoption strategies.
# What it does
* Detects natural runs in the input (ascending, descending, or random) with a tiny lookahead.
* Maintains two sets of piles for ascending and descending runs, essentially a dual-patience sort.
* Falls back to tiny 8-value bitonic sort networks on detected random regions.
* When this random-input block is run too many times, it falls back to **std::sort**.
* Currently merges adjacent runs in a naive/bottom-up way.
# Current numbers
Median runtime ratios vs `std::sort` over 100 trials:
|Input Type|1k Values|10k|100k|1M|
|:-|:-|:-|:-|:-|
|Random|**0.984**|1.032|1.042|1.088|
|Sorted|1.022|**0.679**|**0.583**|1.448?|
|Reverse|1.636|1.076|**0.900**|2.101?|
|Sorted+Noise(5%)|1.048|1.041|1.079|1.201|
|Random+Repeats(50%)|1.037|1.032|1.031|1.089|
|Jitter|1.012|**0.674**|**0.586**|1.443?|
|Alternating|**0.829**|1.011|**0.974**|1.018|
|Sawtooth|1.121|**0.960**|**0.978**|1.072|
|BlockSorted|1.046|**0.950**|**0.928**|1.153|
|OrganPipe|**0.446**|**0.232**|**0.138**|**0.268**|
|Rotated|**0.596**|**0.522**|**0.396**|**0.716**|
|Signal|1.402|**0.828**|**0.659**|**0.582**|
**Notes:**
* Ratios are `JesseSort` / `std::sort`. **Values <1 indicate JesseSort is faster.** 0.5 means JesseSort takes half the time (2x faster). 2.0 means JesseSort takes twice as much time (2x slower).
* Large input blow-ups (`?`) appear to be outliers on my machine, but would be curious to see if others see the same pattern.
# Current issues / questions
1. **Handoff threshold:** Detecting random input too early loses semi-structured gains; too late slows random input. How should this balance be tuned?
2. **Fallback vs. std::sort:** Could JesseSort itself (dual patience games) serve as a better fallback than heap sort in standard introsort implementations?
3. **Merge optimizations:** Current merge is bottom-up adjacent. I’ve prototyped a TimSort-style merge that merges smaller runs first. Minor speedups in most cases but I haven't tested it enough.
4. **Memory layout & cache:** Some sensitivity to variable placement and data alignment is noticeable. Any advice for robust layout-sensitive optimizations?
5. **Real-world adoption:** Even if slightly slower on purely random input (\~5%), the structured input gains are often >50%. Would such an algorithm be worth promoting or considered niche? If the hit to random input is too significant, maybe this would find a better home as an alternative like `std::structured_sort`?
I’m looking for input on:
* Algorithmic improvements, especially for the random vs structured handoff
* Practical concerns for integration into standard libraries
* Benchmark methodology for mixed input distributions
* Real-world test datasets that might showcase advantages
Code and full details are available here: [https://github.com/lewj85/jessesort](https://github.com/lewj85/jessesort)
Thanks
https://redd.it/1r8n7vi
@r_cpp
Hi all,
I’ve been developing an adaptive sorting algorithm, tentatively called **JesseSort**, which aims to exploit partial order in input data while still being competitive with standard library sorts on random input. I’m looking for feedback on design and potential adoption strategies.
# What it does
* Detects natural runs in the input (ascending, descending, or random) with a tiny lookahead.
* Maintains two sets of piles for ascending and descending runs, essentially a dual-patience sort.
* Falls back to tiny 8-value bitonic sort networks on detected random regions.
* When this random-input block is run too many times, it falls back to **std::sort**.
* Currently merges adjacent runs in a naive/bottom-up way.
# Current numbers
Median runtime ratios vs `std::sort` over 100 trials:
|Input Type|1k Values|10k|100k|1M|
|:-|:-|:-|:-|:-|
|Random|**0.984**|1.032|1.042|1.088|
|Sorted|1.022|**0.679**|**0.583**|1.448?|
|Reverse|1.636|1.076|**0.900**|2.101?|
|Sorted+Noise(5%)|1.048|1.041|1.079|1.201|
|Random+Repeats(50%)|1.037|1.032|1.031|1.089|
|Jitter|1.012|**0.674**|**0.586**|1.443?|
|Alternating|**0.829**|1.011|**0.974**|1.018|
|Sawtooth|1.121|**0.960**|**0.978**|1.072|
|BlockSorted|1.046|**0.950**|**0.928**|1.153|
|OrganPipe|**0.446**|**0.232**|**0.138**|**0.268**|
|Rotated|**0.596**|**0.522**|**0.396**|**0.716**|
|Signal|1.402|**0.828**|**0.659**|**0.582**|
**Notes:**
* Ratios are `JesseSort` / `std::sort`. **Values <1 indicate JesseSort is faster.** 0.5 means JesseSort takes half the time (2x faster). 2.0 means JesseSort takes twice as much time (2x slower).
* Large input blow-ups (`?`) appear to be outliers on my machine, but would be curious to see if others see the same pattern.
# Current issues / questions
1. **Handoff threshold:** Detecting random input too early loses semi-structured gains; too late slows random input. How should this balance be tuned?
2. **Fallback vs. std::sort:** Could JesseSort itself (dual patience games) serve as a better fallback than heap sort in standard introsort implementations?
3. **Merge optimizations:** Current merge is bottom-up adjacent. I’ve prototyped a TimSort-style merge that merges smaller runs first. Minor speedups in most cases but I haven't tested it enough.
4. **Memory layout & cache:** Some sensitivity to variable placement and data alignment is noticeable. Any advice for robust layout-sensitive optimizations?
5. **Real-world adoption:** Even if slightly slower on purely random input (\~5%), the structured input gains are often >50%. Would such an algorithm be worth promoting or considered niche? If the hit to random input is too significant, maybe this would find a better home as an alternative like `std::structured_sort`?
I’m looking for input on:
* Algorithmic improvements, especially for the random vs structured handoff
* Practical concerns for integration into standard libraries
* Benchmark methodology for mixed input distributions
* Real-world test datasets that might showcase advantages
Code and full details are available here: [https://github.com/lewj85/jessesort](https://github.com/lewj85/jessesort)
Thanks
https://redd.it/1r8n7vi
@r_cpp
GitHub
GitHub - lewj85/jessesort
Contribute to lewj85/jessesort development by creating an account on GitHub.
Apache Fory C++: Fast Serialization with Shared/Circular Reference Tracking, Polymorphism, Schema Evolutionn and up to 12x Faster Than Protobuf
We just released Apache Fory Serialization support for c++:
https://fory.apache.org/blog/fory\_cpp\_blazing\_fast\_serialization\_framework
Highlights:
1. Automatic idiomatic cross-language serializaton: no adapter layer, serialize in C++, deserialize in Python.
2. Polymorphism via smart pointers: Fory detects
3. Circular/shared reference tracking: Shared objects are serialized once and encoded as back-references. Cycles don't overflow the stack.
4. Schema evolution: Compatible mode matches fields by name/id, not position. Add fields on one side without coordinating deployments.
5. IDL compiler (optional):
6. 6. Row format: O(1) random field access by index, useful for analytics workloads where you only read a few fields per record.
Throughput vs. Protobuf: up to 12x depending on workload.
GitHub: https://github.com/apache/fory
C++ docs: https://fory.apache.org/docs/guide/cpp
I’d really like critical feedback on API ergonomics, and production fit.
https://redd.it/1r8a0zt
@r_cpp
We just released Apache Fory Serialization support for c++:
https://fory.apache.org/blog/fory\_cpp\_blazing\_fast\_serialization\_framework
Highlights:
1. Automatic idiomatic cross-language serializaton: no adapter layer, serialize in C++, deserialize in Python.
2. Polymorphism via smart pointers: Fory detects
std::is_polymorphic<T> automatically. Serialize through a shared_ptr<Animal>, get a Dog back.3. Circular/shared reference tracking: Shared objects are serialized once and encoded as back-references. Cycles don't overflow the stack.
4. Schema evolution: Compatible mode matches fields by name/id, not position. Add fields on one side without coordinating deployments.
5. IDL compiler (optional):
foryc ecommerce.fdl --cpp_out ./gen generates idiomatic code for every language from one schema. Generated code can be used as domain objects directly6. 6. Row format: O(1) random field access by index, useful for analytics workloads where you only read a few fields per record.
Throughput vs. Protobuf: up to 12x depending on workload.
GitHub: https://github.com/apache/fory
C++ docs: https://fory.apache.org/docs/guide/cpp
I’d really like critical feedback on API ergonomics, and production fit.
https://redd.it/1r8a0zt
@r_cpp
fory.apache.org
Introducing Apache Fory™ C++: Blazing-Fast, Type-Safe Serialization for Modern C++ | Apache Fory™
TL;DR: Apache Fory C++ is a blazing-fast, cross-language serialization framework delivering exceptional binary performance with support for polymorphic types, circular references, schema evolution, and seamless interoperability with Java, Python, Go, Rust…
Implementing your own asynchronous runtime for C++ coroutines
Hi all! Last time I wrote a blog post about writing your own C++ coroutines. Now, I wanted to highlight how to write your own C++ asynchronous runtime for your coroutines.
https://rhidian-server.com/how-to-create-your-own-asynchronous-runtime-in-c/
Thanks for reading, and let me know if you have any comments!
https://redd.it/1ratu13
@r_cpp
Hi all! Last time I wrote a blog post about writing your own C++ coroutines. Now, I wanted to highlight how to write your own C++ asynchronous runtime for your coroutines.
https://rhidian-server.com/how-to-create-your-own-asynchronous-runtime-in-c/
Thanks for reading, and let me know if you have any comments!
https://redd.it/1ratu13
@r_cpp
Rhidian's Blog Posts
How to create your own asynchronous runtime in C++
Last time I wrote about how to implement coroutines in C++ (https://rhidian-server.com/implementing-c-coroutines/).
The next logical step would be how to implement your own asynchronous runtime. After all, something needs to trigger your coroutines.
💡This…
The next logical step would be how to implement your own asynchronous runtime. After all, something needs to trigger your coroutines.
💡This…
Serialization by contract and IPC
https://github.com/amarmer/SerializationByContract
https://redd.it/1rb2yes
@r_cpp
https://github.com/amarmer/SerializationByContract
https://redd.it/1rb2yes
@r_cpp
GitHub
GitHub - amarmer/SerializationByContract: C++ Serialization by contract
C++ Serialization by contract. Contribute to amarmer/SerializationByContract development by creating an account on GitHub.
C++26 Reflection + PyBind11 for algo trading
https://github.com/profitviews/merton-market-maker
https://redd.it/1rbjsxk
@r_cpp
https://github.com/profitviews/merton-market-maker
https://redd.it/1rbjsxk
@r_cpp
GitHub
GitHub - profitviews/merton-market-maker: Demo algo showing Python with C++ bindings using compile-time reflection
Demo algo showing Python with C++ bindings using compile-time reflection - profitviews/merton-market-maker