C++ - Reddit
224 subscribers
48 photos
8 videos
24.7K links
Stay up-to-date with everything C++!
Content directly fetched from the subreddit just for you.

Join our group for discussions : @programminginc

Powered by : @r_channels
Download Telegram
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
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
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
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
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
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
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
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 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
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
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