Documenting my Chess Engine Journey So Far!
Just thought I'd pop this here. Am writing a Chess Engine in C++ and am blogging all the trials, tribulations and optimizations in what I'm hoping is a semi-humorous and entertaining way.
Would love any feedback you might have and also would love feedback on the code which is available towards the top!
https://olly-evans.github.io/chess/
https://redd.it/1snwal6
@r_cpp
Just thought I'd pop this here. Am writing a Chess Engine in C++ and am blogging all the trials, tribulations and optimizations in what I'm hoping is a semi-humorous and entertaining way.
Would love any feedback you might have and also would love feedback on the code which is available towards the top!
https://olly-evans.github.io/chess/
https://redd.it/1snwal6
@r_cpp
Olly Evans
Chess and Engine Programming
Programming a Chess Engine
C++20 Modules: The Tooling Gap
https://ignition.github.io/posts/cpp20-modules-the-tooling-gap/
https://redd.it/1snx6r8
@r_cpp
https://ignition.github.io/posts/cpp20-modules-the-tooling-gap/
https://redd.it/1snx6r8
@r_cpp
The proof is trivial
C++20 Modules: The Tooling Gap
We’ve been incrementally adopting C++20 modules at Memgraph (source) since late 2025. The compiler side has been surprisingly smooth. The tooling side, less so.
HPX Tutorials: Performance analysis with Traveller
https://www.youtube.com/watch?v=xN5BM7FzDsI
https://redd.it/1snyotu
@r_cpp
https://www.youtube.com/watch?v=xN5BM7FzDsI
https://redd.it/1snyotu
@r_cpp
YouTube
HPX Tutorials: Performance analysis with Traveler
This tutorial explains how to perform deep runtime analysis on HPX applications using APEX and the Traveller visualization tool. Starting with an explanation of HPX's lightweight task management, we demonstrate why raw hardware utilization metrics can be…
Online talk on building a C++ based custom language and lexer internals
Developers from PVS-Studio are continuing their series of talks about creating a custom programming language. They will explain what the lexer is, what it consists of, and how to work with it.
The talk series as a whole is for devs who want to start understanding how compilers work under the hood. Throughout the series, their C++ architect demonstrates the practical application of each programming language component.
If you're interested, I leave the link here.
https://redd.it/1so08nx
@r_cpp
Developers from PVS-Studio are continuing their series of talks about creating a custom programming language. They will explain what the lexer is, what it consists of, and how to work with it.
The talk series as a whole is for devs who want to start understanding how compilers work under the hood. Throughout the series, their C++ architect demonstrates the practical application of each programming language component.
If you're interested, I leave the link here.
https://redd.it/1so08nx
@r_cpp
PVS-Studio
Let′s make a programming language. Lexer
In this session, we continue building our own programming language from the ground up. Previously, we covered how terminal symbols fit into a grammar. Now we move one layer deeper: the lexer.
The lexer is the part of the parsing pipeline that operates on…
The lexer is the part of the parsing pipeline that operates on…
build2 0.18.1 released, adds package manager Fetch Cache, JSON Compilation Database, and official binary packages
https://build2.org/release/0.18.0.xhtml
https://redd.it/1so1igj
@r_cpp
https://build2.org/release/0.18.0.xhtml
https://redd.it/1so1igj
@r_cpp
Built a Preemptive Task Scheduler in C++ from scratch: Performance comparison across Windows, Linux, and PREEMPT_RT kernel.
https://prejudice.tistory.com/45
https://redd.it/1so5213
@r_cpp
https://prejudice.tistory.com/45
https://redd.it/1so5213
@r_cpp
Prejudice
C++ Preemptive Task Scheduler 구현 및 성능 비교 (Windows · Linux · Linux PREEMPT_RT)
들어가며최근 며칠 동안 진행 중인 SW PLC 프로젝트의 핵심 로직인 멀티 태스킹(Multi-Tasking) 기능을 구현하는 데 집중하고 있다.이번 작업의 세부 목표는 총 3가지이며, 최종적으로는 사용자의 다중 Task를 선점 스케줄링(Preemptive Scheduling) 방식으로 수행하는 클래스를 개발하려 한다.Multi-Platform 지원: 'Windows', 'Linux', 'Linux PREEMPT_RT Kernel' 환경에서 모두 정상 동작할…
cppreference is back up! but overloaded
I just clicked a link that wasn’t cached and noticed very long loading time. Eventually the page loaded, and I noticed the font was different. After Herb’s post, I was excited and noticed the homepage notice declared the site newly operational again! However I am experiencing a significant number of 5xx errors.
https://redd.it/1so7kx8
@r_cpp
I just clicked a link that wasn’t cached and noticed very long loading time. Eventually the page loaded, and I noticed the font was different. After Herb’s post, I was excited and noticed the homepage notice declared the site newly operational again! However I am experiencing a significant number of 5xx errors.
https://redd.it/1so7kx8
@r_cpp
Reddit
From the cpp community on Reddit
Explore this post and more from the cpp community
Built an AI overlay that disappears on screen share — one Win32 API call, C++, and a week of evenings
Built this after getting frustrated during technical interviews — an AI assistant that's literally invisible on screen share
I kept wondering why there wasn't a clean way to have a personal reference window open during video calls without it being visible on screen.
Then I found out about SetWindowDisplayAffinity — a Windows API that lets you exclude a window from all capture. OBS, Zoom, Teams, Google Meet — none of them pick it up. The window exists on your screen, nowhere else.
Spent a week building an overlay on top of it. Floating AI assistant. Only you can see it. That's the whole thing.
Shipped it at www.unviewable.online.
For anyone curious about the tech — it's C++ with CMake, the magic is literally one Win32 API call. Windows has had this since Windows 10 2004 and barely anyone talks about it. Wild.
https://redd.it/1sodzjg
@r_cpp
Built this after getting frustrated during technical interviews — an AI assistant that's literally invisible on screen share
I kept wondering why there wasn't a clean way to have a personal reference window open during video calls without it being visible on screen.
Then I found out about SetWindowDisplayAffinity — a Windows API that lets you exclude a window from all capture. OBS, Zoom, Teams, Google Meet — none of them pick it up. The window exists on your screen, nowhere else.
Spent a week building an overlay on top of it. Floating AI assistant. Only you can see it. That's the whole thing.
Shipped it at www.unviewable.online.
For anyone curious about the tech — it's C++ with CMake, the magic is literally one Win32 API call. Windows has had this since Windows 10 2004 and barely anyone talks about it. Wild.
https://redd.it/1sodzjg
@r_cpp
Invisible AI
Invisible AI — The Intelligence They Can't See
A 100% invisible AI assistant for high-stakes interviews and meetings. Bypasses all screen-capture pipelines.
Next week: Interview with Guy Davidson at Meeting C++ online
https://www.meetup.com/de-de/meeting-cpp-online/events/314162009
https://redd.it/1sozbmk
@r_cpp
https://www.meetup.com/de-de/meeting-cpp-online/events/314162009
https://redd.it/1sozbmk
@r_cpp
Meetup
Interview with Guy Davidson, Do., 23. Apr. 2026, 19:00 | Meetup
Meeting C++ is hosting an interview with Guy Davidson! He is the new ISO C++ care taker following Herb Sutter. His background is gamedev and C++, giving talks and mingling
Opinions on Introducing C++: The Easy Way to Start Learning Modern C++ by Frances Buontempo
What do you guys think about the book Introducing C++: The Easy Way to Start Learning Modern C++ by Frances Buontempo i was considering to buy it because i want to learn c++ and i already have some experiences coding in other languages it seems like a sort of successor to accellerated c++
https://redd.it/1sp3epy
@r_cpp
What do you guys think about the book Introducing C++: The Easy Way to Start Learning Modern C++ by Frances Buontempo i was considering to buy it because i want to learn c++ and i already have some experiences coding in other languages it seems like a sort of successor to accellerated c++
https://redd.it/1sp3epy
@r_cpp
Reddit
From the cpp community on Reddit
Explore this post and more from the cpp community
Using Internal Partitions
https://abuehl.github.io/2026/04/18/using-internal-partitions.html
https://redd.it/1spe1lu
@r_cpp
https://abuehl.github.io/2026/04/18/using-internal-partitions.html
https://redd.it/1spe1lu
@r_cpp
Adrian’s Notes
Using Internal Partitions
Our Core module is in code/Core. The file Core/_Module.ixx contains: export module Core; export import :Attach; export import :Container; export import :CopyRegistry; export import :Diagram; export import :Element; ... This is the interface of the Core module.…
Live Coding in C++ Is Difficult But Not Impossible
https://youtu.be/Tb8Ni1jdcGI?t=989
https://redd.it/1spjik3
@r_cpp
https://youtu.be/Tb8Ni1jdcGI?t=989
https://redd.it/1spjik3
@r_cpp
YouTube
Subroutine Sessions EP00 / Ranjith_hegde :: mayaflux_demo
Three pre-composed pieces and one live-coded piece, performed on a Steam Deck running an Arch Linux container.
All sound and visuals are generated in real time by MayaFlux, an open source C++20 multimedia framework built on Vulkan.
The set moves from stochastic…
All sound and visuals are generated in real time by MayaFlux, an open source C++20 multimedia framework built on Vulkan.
The set moves from stochastic…
mini project
I built a small to-do List project in C++
I'd appreciate if you can take a quick look and give feedback on:
\>File structure
\>Code design
\>Any bad practices
\> the name must be one word like (ex_ex_ex) and i can't solve that
GitHub link: to-do\_list\_cpp/to\_do\_list.cpp at main · TheGreat-A7A/to-do\_list\_cpp
https://redd.it/1spmp6g
@r_cpp
I built a small to-do List project in C++
I'd appreciate if you can take a quick look and give feedback on:
\>File structure
\>Code design
\>Any bad practices
\> the name must be one word like (ex_ex_ex) and i can't solve that
GitHub link: to-do\_list\_cpp/to\_do\_list.cpp at main · TheGreat-A7A/to-do\_list\_cpp
https://redd.it/1spmp6g
@r_cpp
GitHub
to-do_list_cpp/to_do_list.cpp at main · TheGreat-A7A/to-do_list_cpp
simple mini to-do app . Contribute to TheGreat-A7A/to-do_list_cpp development by creating an account on GitHub.
A virtual pointer pattern for dynamic resolution in C++ — years in production
I've been working on Olex2, a crystallography software package, for over 20 years. At some point I needed pointers whose target wasn't a fixed address but a runtime decision — "whatever is currently the active object of this type."
The result was
https://github.com/pcxod/olex2/blob/master/sdl/olxvptr.h
The calling code uses natural pointer syntax and knows nothing about how resolution happens. A concrete use looks like this:
struct VPtr : public olx_virtual_ptr<TXFile> {
virtual IOlxObject *get_ptr() const;
};
olx_vptr<TXFile> thip(new VPtr());
lib->Register(
new TFunction<TXFile>(thip, &TXFile::LibGetFormula, "GetFormula", .....
(https://github.com/pcxod/olex2/blob/master/xlib/xfiles.cpp#L1427)
Single virtual dispatch, fully type-safe, open to any resolution strategy.
I'm surprised this pattern never made it into the standard or common literature. Has anyone seen something similar? Would there be interest in a more formal writeup?
https://redd.it/1spvxx6
@r_cpp
I've been working on Olex2, a crystallography software package, for over 20 years. At some point I needed pointers whose target wasn't a fixed address but a runtime decision — "whatever is currently the active object of this type."
The result was
olx_vptr — a virtual pointer where resolution is delegated to a user-defined get_ptr():https://github.com/pcxod/olex2/blob/master/sdl/olxvptr.h
The calling code uses natural pointer syntax and knows nothing about how resolution happens. A concrete use looks like this:
struct VPtr : public olx_virtual_ptr<TXFile> {
virtual IOlxObject *get_ptr() const;
};
olx_vptr<TXFile> thip(new VPtr());
lib->Register(
new TFunction<TXFile>(thip, &TXFile::LibGetFormula, "GetFormula", .....
(https://github.com/pcxod/olex2/blob/master/xlib/xfiles.cpp#L1427)
Single virtual dispatch, fully type-safe, open to any resolution strategy.
I'm surprised this pattern never made it into the standard or common literature. Has anyone seen something similar? Would there be interest in a more formal writeup?
https://redd.it/1spvxx6
@r_cpp
GitHub
GitHub - pcxod/olex2
Contribute to pcxod/olex2 development by creating an account on GitHub.
I built a calm, readable system monitor for Linux (Qt6, C++20, open source)
Most Linux system monitors end up in one of two places: they feel ancient and cramped, or they show everything at once and become visual noise. I wanted something in between, genuinely useful but still pleasant to look at for more than ten seconds. So I built archvital.
It has a compact Overview page for the numbers that matter most, plus dedicated pages for CPU, GPU, Memory, Disk, Network, Tasks, and a Diagnostics page for common health checks. There is a Settings page for theme colors and section visibility, and preferences are saved through QSettings so the app remembers your layout between sessions.
The whole thing is built on Qt6 and C++20 with custom sidebar, card, sparkline, and bar components. No extra widget library beyond Qt itself.
The project is already daily driveable but still actively evolving. Screenshots are in the repo. If you try it and something looks wrong or reads oddly, that is exactly the kind of feedback I am looking for.
github.com/T9Tuco/archvital
https://redd.it/1sq6siu
@r_cpp
Most Linux system monitors end up in one of two places: they feel ancient and cramped, or they show everything at once and become visual noise. I wanted something in between, genuinely useful but still pleasant to look at for more than ten seconds. So I built archvital.
It has a compact Overview page for the numbers that matter most, plus dedicated pages for CPU, GPU, Memory, Disk, Network, Tasks, and a Diagnostics page for common health checks. There is a Settings page for theme colors and section visibility, and preferences are saved through QSettings so the app remembers your layout between sessions.
The whole thing is built on Qt6 and C++20 with custom sidebar, card, sparkline, and bar components. No extra widget library beyond Qt itself.
The project is already daily driveable but still actively evolving. Screenshots are in the repo. If you try it and something looks wrong or reads oddly, that is exactly the kind of feedback I am looking for.
github.com/T9Tuco/archvital
https://redd.it/1sq6siu
@r_cpp
GitHub
GitHub - T9Tuco/archvital: Open-source system monitor & diagnostics tool for Arch Linux — built with C++20 and Qt6.
Open-source system monitor & diagnostics tool for Arch Linux — built with C++20 and Qt6. - T9Tuco/archvital
SIMD IPv6 lookup vs Patricia trie: surprising real-world results
I’ve been working on a C++ implementation of a SIMD-accelerated IPv6 longest-prefix-match (LPM) structure based on the PlanB paper (linearized B+-tree + AVX-512).
On synthetic workloads, the results were as expected:
\~20× faster than a naive Patricia trie.
But when I switched to a real BGP table (RIPE RIS rrc00, \~254K IPv6 prefixes), I got a surprising result:
A simple Patricia trie can actually match or even outperform the SIMD-based tree.
Numbers (single core, Ice Lake laptop):
\- SIMD tree: \~65–137 MLPS
\- Patricia: \~95 MLPS median
The reason seems to be cache locality and early exits:
\- Patricia often resolves lookups after just a few pointer hops in hot regions of the address space
\- The SIMD tree always pays a fixed traversal cost (depth \~7)
So even though the SIMD approach is more “theoretically efficient”, real-world prefix distribution and access patterns change the outcome quite a bit.
I’m curious if others have observed similar effects in routing / packet processing systems, or when comparing structures like PopTrie / CP-Trie.
Repo (MIT, includes benchmarks + real BGP reproduction):
https://github.com/esutcu/planb-lpm
https://redd.it/1sqe08e
@r_cpp
I’ve been working on a C++ implementation of a SIMD-accelerated IPv6 longest-prefix-match (LPM) structure based on the PlanB paper (linearized B+-tree + AVX-512).
On synthetic workloads, the results were as expected:
\~20× faster than a naive Patricia trie.
But when I switched to a real BGP table (RIPE RIS rrc00, \~254K IPv6 prefixes), I got a surprising result:
A simple Patricia trie can actually match or even outperform the SIMD-based tree.
Numbers (single core, Ice Lake laptop):
\- SIMD tree: \~65–137 MLPS
\- Patricia: \~95 MLPS median
The reason seems to be cache locality and early exits:
\- Patricia often resolves lookups after just a few pointer hops in hot regions of the address space
\- The SIMD tree always pays a fixed traversal cost (depth \~7)
So even though the SIMD approach is more “theoretically efficient”, real-world prefix distribution and access patterns change the outcome quite a bit.
I’m curious if others have observed similar effects in routing / packet processing systems, or when comparing structures like PopTrie / CP-Trie.
Repo (MIT, includes benchmarks + real BGP reproduction):
https://github.com/esutcu/planb-lpm
https://redd.it/1sqe08e
@r_cpp
GitHub
GitHub - esutcu/planb-lpm
Contribute to esutcu/planb-lpm development by creating an account on GitHub.
Freeing up the syntax for a module partition implementation unit
https://www.reddit.com/r/cpp/comments/1scfoh9/comment/oefg9gm/
https://redd.it/1sqduld
@r_cpp
https://www.reddit.com/r/cpp/comments/1scfoh9/comment/oefg9gm/
https://redd.it/1sqduld
@r_cpp
Reddit
GabrielDosReis's comment on "Options for Organizing Partitions"
Explore this conversation and more from the cpp community