r/cpp • • 18d ago

C++ Show and Tell - October 2026

45 Upvotes

Use this thread to share anything you've written in C++. This includes:

  • a tool you've written
  • a game you've been working on
  • your first non-trivial C++ program

The rules of this thread are very straight forward:

  • The project must involve C++ in some way.
  • It must be something you (alone or with others) have done.
  • Please share a link, if applicable.
  • Please post images, if applicable.

If you're working on a C++ library, you can also share new releases or major updates in a dedicated post as before. The line we're drawing is between "written in C++" and "useful for C++ programmers specifically". If you're writing a C++ library or tool for C++ developers, that's something C++ programmers can use and is on-topic for a main submission. It's different if you're just using C++ to implement a generic program that isn't specifically about C++: you're free to share it here, but it wouldn't quite fit as a standalone post.

Last month's thread: https://www.reddit.com/r/cpp/comments/1w776o7/c_show_and_tell_september_2026/


r/cpp • • 19d ago

C++ Jobs - Q4 2026

37 Upvotes

Rules For Individuals

  • Don't create top-level comments - those are for employers.
  • Feel free to reply to top-level comments with on-topic questions.
  • I will create top-level comments for meta discussion and individuals looking for work.

Rules For Employers

  • If you're hiring directly, you're fine, skip this bullet point. If you're a third-party recruiter, see the extra rules below.
  • Multiple top-level comments per employer are now permitted.
    • It's still fine to consolidate multiple job openings into a single comment, or mention them in replies to your own top-level comment.
  • Don't use URL shorteners.
    • reddiquette forbids them because they're opaque to the spam filter.
  • Use the following template.
    • Use **two stars** to bold text. Use empty lines to separate sections.
  • Proofread your comment after posting it, and edit any formatting mistakes.
  • Check if your comment is visible in Incognito mode, after waiting a few minutes.
    • If not, it was probably automatically removed, which happens frequently for new accounts. Send modmail, otherwise we might not notice quickly.

Template

**Company:** [Company name; also, use the "formatting help" to make it a link to your company's website, or a specific careers page if you have one.]

**Type:** [Full time, part time, internship, contract, etc.]

**Compensation:** [This section is optional, and you can omit it without explaining why. However, including it will help your job posting stand out as there is extreme demand from candidates looking for this info. If you choose to provide this section, it must contain (a range of) actual numbers - don't waste anyone's time by saying "Compensation: Competitive."]

**Location:** [Where's your office - or if you're hiring at multiple offices, list them. If your workplace language isn't English, please specify it. It's suggested, but not required, to include the country/region; "Redmond, WA, USA" is clearer for international candidates.]

**Remote:** [Do you offer the option of working remotely? If so, do you require employees to live in certain areas or time zones?]

**Visa Sponsorship:** [Does your company sponsor visas?]

**Description:** [What does your company do, and what are you hiring C++ devs for? How much experience are you looking for, and what seniority levels are you hiring for? The more details you provide, the better.]

**Technologies:** [Required: what version of the C++ Standard do you mainly use? Optional: do you use Linux/Mac/Windows, are there languages you use in addition to C++, are there technologies like OpenGL or libraries like Boost that you need/want/like experience with, etc.]

**Contact:** [How do you want to be contacted? Email, reddit PM, telepathy, gravitational waves?]

Extra Rules For Third-Party Recruiters

Send modmail to request pre-approval on a case-by-case basis. We'll want to hear what info you can provide (in this case you can withhold client company names, and compensation info is still recommended but optional). We hope that you can connect candidates with jobs that would otherwise be unavailable, and we expect you to treat candidates well.

Previous Post


r/cpp • • 13h ago

Valgrind 3.28 RC1

27 Upvotes

An RC1 tarball for 3.28.0 is now available at https://sourceware.org/pub/valgrind/valgrind-3.28.0.RC1.tar.bz2
https://sourceware.org/pub/valgrind/valgrind-3.28.0.RC1.tar.bz2.asc

Public keys can be found at https://www.klomp.org/mark/gnupg-pub.txt

Please give it a try in configurations that are important for you and report any problems you have via our bug tracker at https://bugs.kde.org/enter_bug.cgi?product=valgrind

See the NEWS file for a list of changes and bugfixes https://sourceware.org/git/?p=valgrind.git;a=blob;f=NEWS;h=be8b91b474e71535f272e8f11f1f6d1d35826ed3;hb=HEAD

Unless showstopper bugs are found (and cannot be easily fixed) the final 3.28.0 release is scheduled for this Fri Oct 23.

Note that our mailinglists at sourceforge.net seem to currently be unavailable. Not a great time to have that problem...


r/cpp • • 1d ago

What is Modern C++ to you?

75 Upvotes

I keep hearing "modern C++." I've even used the term myself. And now I find I am questioning my use of the term.

  1. What does "modern C++" really mean, specifically?
  2. How many more years need to pass before it becomes just "C++?"
  3. If "modern C++" is a thing then what is the other thing. Is it "old C++," or "legacy C++?"
  4. Is C++ the only language that has a "modern" version?
  5. If the answer to 4 is yes, why is C++ unique?

r/cpp • • 10h ago

What's the difference between cppreference .com and .net?

4 Upvotes

My duckduckgo googling started giving me both, I don't understand the difference and don't remember which one is the original

They both look exactly the same
.com has en. at the beginning
.net doesn't have accounts

.net has the picture, .com doesn't


Is it a typosquash, is one of them fake, what's going on?


r/cpp • • 17h ago

Meeting C++ The public prerecordings for Meeting C++ 2026 are starting!

Thumbnail meetingcpp.com
11 Upvotes

r/cpp • • 1d ago

What makes a game tick? Part 9.5 - The Curse of the Scheduler Latency · Mathieu Ropert

Thumbnail mropert.github.io
47 Upvotes

r/cpp • • 2d ago

Qt Creator 21 - CMake Changes

27 Upvotes

r/cpp • • 2d ago

New C++ Conference Videos Released This Month - October 2026 (Updated To Include Videos Released 2026-10-12 - 2026-10-18)

31 Upvotes

C++Now

2026-10-12 - 2026-10-18

2026-10-05 - 2026-10-11

2026-09-28 - 2026-10-04

ACCU

2026-10-12 - 2026-10-18

2026-10-05 - 2026-10-11

2026-09-28 - 2026-10-04

ADC

2026-10-12 - 2026-10-18

2026-10-05 - 2026-10-11

2026-09-28 - 2026-10-04


r/cpp • • 2d ago

4 compilers and 3 different results when partially/fully specializing member class template of a class template

8 Upvotes

I was playing with examples from cppreference, specifically https://cppreference.com/cpp/language/partial_specialization at the bottom in order to understand specialization deeper and form some notes. Maybe even at some point put out a template guide on my website.

Last 2 statements describe very similar situation but the order of words in each sentence is so different and the example so narrow that I had trouble figuring out what these really mean:

If the primary member template is explicitly (fully) specialized for a given (implicit) specialization of the enclosing class template, the partial specializations of the member template are ignored for this specialization of the enclosing class template.

If a partial specialization of the member template is explicitly specialized for a given (implicit) specialization of the enclosing class template, the primary member template and its other partial specializations are still considered for this specialization of the enclosing class template.

Eventually I managed to figure out the example only showcases the first statement and that the difference between these 2 situations is this:

  • struct A<short>::B {}; - full spec of member B template for implicitly-instantiated A template (replaces all B for A<short>)
  • struct A<short>::B<T&> {}; - partial spec of member B template for implicitly-instantiated A template (adds another spec to A<short>, merging it with specs from primary A template)

To confirm I reason correctly, I wrote some sample code to have a more comprehensive example. I did not expect to encounter 3 different outputs from 4 different compilers. And I don't think you can reach UB on templates alone.

https://godbolt.org/z/8z7vde1PE

So which one is correct (if any - maybe it's ill-formed no diagnostic required)? The comments are my expectations, the question marks are places where compilers disagree.

Also, member specialization isn't even a C++11 feature. Compiler bugs in something so old and fundamental (and supposedly easy to unit-test) ... I have no words.


r/cpp • • 3d ago

Composite objects and C++26 the std::polymorphic type

Thumbnail mariusbancila.ro
60 Upvotes

Great clear concise explanation of the need for and use of std:polymorphic.


r/cpp • • 2d ago

C++/Java interoperability and system failures at WAWTech — Warsaw, 26–27 November

5 Upvotes

Hi there! I am working with the organising team for WAWTech. Its two-day software and product development conference and takes place at EXPO XXI in Warsaw on 26–27 November 2026.

Want to share two talks from the programme that may be relevant here:

First one is Denys Makogon, Oracle — “The Modern Challenge of Integrating C++ into the Java Ecosystem: Problems, Consequences, and Solutions”. The talk looks at what happens when Java applications need to use C++ libraries (OpenCV or OpenVINO). It covers differences in memory models, object lifetimes and error handling, and how to build a reliable bridge between the two languages.

Second one is Paweł Romul — “Your System Will Fail. What Now?”. Its a broader architecture talk examining two real incidents and the decisions that led to very different outcomes. This one isn’t C++-specific, but i think may interest people working on systems where failure handling shapes the design :)

Event details if you’re considering attending.


r/cpp • • 3d ago

The intention and spirit behind modules seem diametrically opposed to their actual implementations by compiler toolchains.

8 Upvotes

The lynchpin of C++ modules is the built module interface (BMI). Each BMI is meant to be a lightweight data structure representing the syntax of a module unit (comprised of one primary module interface and potentially one or more partitions), with approximately O(1) complexity of symbol lookup. This massively accelerates repeated lookups into the same translation unit, and avoids paying the cost of a full preprocessor run and front-end lex + parse, as might otherwise happen with header files. In this way both the first clean build, and incremental builds are considerably accelerated and made much more efficient—build the BMI once, reuse it across future compiles, and we don't need large core counts and massively parallel jobs because the BMI is now available afterwards.

However, the way compiler toolchains have actually implemented them seems diametrically opposed to this goal of fast lookup. Today, BMIs are highly sensitive to any change in the command-line invocation of the compiler/dependency scanning tool, including the C++ version, warning and feature flags, and especially macro definitions, with -DMACRO or /DMACRO. This means that changing just one flag is likely to cause a BMI cache miss and a full BMI reconstruction, which can be fairly slow for larger modules (like module std).

BMIs are considered implementation details, and aren't even stable across compiler versions within the same toolchain. Compare to object files, where something compiled by really old versions can still be used on newer versions without too much fuss. This, from the user's perspective, entirely defeats that design ideal mentioned above: fast repeated lookups. Consider a simple example: a certain module uses a project-specific macro representing the platform, to change several function signatures. This module is now precompiled thrice, once each for -DFOO_WINDOWS, -DFOO_DARWIN, -DFOO_LINUX, instead of just once.

I believe that macros and the preprocessor are highly problematic. However, their very limitations are also an advantage here: their effect on code collapses to completely binary decisions. A macro is either defined or not, and a macro is either in the set of accepted values, or it isn't (e.g. #if __cplusplus >= 202603L). The preprocessor state might change throughout the source code of a translation unit, but the entire set of possible states can be enumerated in finite and reasonably short time at compile time—otherwise the front-end would never complete its work. To me, this seems like the preprocessor and parser could enumerate all possible preprocessor states of the source code, and stamp out both possibilities for each macro switch in the BMI; during lookup, the compiler can select the correct code path depending on what is provided at that particular invocation (not code definitions, but command-line invocations, as this would break the module assurance that macros do not leak into BMIs from consumers, nor do consumers see macros from a BMI).

This would make things like library feature configuration with macros really straightforward—specify the macros one wants for that feature at the command-line, which is enshrined in build system code rather than source code—the BMI can be reused, done.

Now, the compiler and C++ standard are a lot harder as these probably affect the internal state of the compiler rather than merely the value of __cplusplus; however, I genuinely feel like there really ought to be a better way forward, especially if C++ is to continue as a 'source may not be available' language. This discussion is moot if we always want to compile from source, but I want to say that is wasteful, and another driving force of the modules feature was to do away with wasteful and repeated recomputation of the same thing.

As mentioned above, build systems are also forced into this rather inefficient model to accommodate compiler behaviour. CMake in its latest iteration, for instance, has a notion of 'BMI compatibility', and probably does some sort of set manipulation on compile flags to determine if another BMI for the same module interface is needed or not, based on how it is imported. Why? This shouldn't be the case, a BMI really ought to be widely (if not universally) compatible, regardless of what flags go in the command-line.

I'm sure I don't have the entire picture as I am not a compiler front-end developer, and I don't mean to sound impertinent here, the effort put into delivering modules has been huge. However there are some decisions made which, as modules user and advocate, seem a little contradictory to the spirit of modules. I've written this after some thought on the situation and I'm interested in hearing from the community and compiler front-end developers who have worked on modules on my thoughts above.

Cheers.


r/cpp • • 4d ago

I can't use generic lambdas at compile-time, now what? - Braden Ganetsky

Thumbnail blog.ganets.ky
23 Upvotes

r/cpp • • 4d ago

C++ Under the sea conference

41 Upvotes

I just attended the C++ Under the Sea 2-day conference. I really enjoyed it. Watch out for talks from Hana, Matt and Kevin Henney. Really good keynotes

Matt presented his v4 version of this ZX Spectrum emulator: https://github.com/mattgodbolt/specbolt

Both Kevin Henney's and Hana's talks were new; at least I haven't seen a version of them before. These keynotes were really, really good. Hope it comes on YouTube soon.

Personally, I was a bit let down by talks from people who work for AI companies. The talks became more like a product user guide than anything to do with C++ or Programming.

Overall, an amazing conference. If you are in or around the Netherlands, you should plan to attend.


r/cpp • • 4d ago

A quick C++ standard container overview

Thumbnail meetingcpp.com
22 Upvotes

r/cpp • • 5d ago

C++ futures part 4: What if I want an immediate on-thread std::async?

Thumbnail devblogs.microsoft.com
34 Upvotes

r/cpp • • 6d ago

MSVC Build Tools Version 14.52 Release Candidate Now Available

Thumbnail devblogs.microsoft.com
71 Upvotes

Hi, one of the MSVC dev leads here.

The 14.52 MSVC Release Candidate is now available. If you are on the Visual Studio Insiders Channel and upgrade, you'll see that the default MSVC toolset has upgraded from 14.51 to 14.52. The blog post covers the features & fixes the team has landed in that timeframe.

C++23 is ready for production use, and available with the /std:c++23 compiler option. See the blog for more details.

We'll resume our monthly MSVC Preview (version 14.53) blog post series next month.


r/cpp • • 6d ago

Barry's C++ Blog - Generating Operator Functions

Thumbnail brevzin.github.io
72 Upvotes

r/cpp • • 6d ago

The Double Headed Stack Allocator – The blog at the bottom of the sea

Thumbnail blog.demofox.org
41 Upvotes

r/cpp • • 7d ago

"C++23 - The Complete Guide" now as Paperback

119 Upvotes

C++23 - The Complete Guide is now also available as paperback version.
You can order it, for example, at Amazon.

The book explains on 500 pages all new features of C++23 (covering both the core language and the standard library) with motivation, conceptional introduction of all aspects, and many examples of how to use the new features in practice.

The book is part of my "The Complete Guide" Series, trying to explain a programming language that is now so overwhelming that as a programmer it is hard to keep track of all its new features, benefits, and pitfalls.

Enjoy

Nico


r/cpp • • 6d ago

A Cross Toolkit Animation Timeline Control

Thumbnail youtube.com
2 Upvotes

New video from Utah C++ Programmers.


r/cpp • • 7d ago

A C++ Trick Question - Blog Post

Thumbnail greenlightning.eu
21 Upvotes

r/cpp • • 6d ago

Please consider bundling C++ STL with your application

0 Upvotes

Systems targeted by C++ toolchains vary a lot even though C++ constantly changes. If you rely on operating system STL for your application code, following things may happen:

  • If your platform A supports C++20 and your platform B supports C++14 and your platform C supports C++11, you will either force C++ <= 11 to all your libraries, or use macro magic etc, to use one set of features each platform.

  • If you operate in a specialized domain, such as real-time systems, you may need a standard library built with specific configuration options, such as disabling exceptions or RTTI. Relying on the system-provided STL leaves you dependent on how it was built, which may not meet your requirements

If you build your STL of choice you solve all these issues:

  • You can use the highest C++ standard possible, you no longer have to think about each operating system state extensively.
  • You can configure your STL to match your needs

In nearly all modern system languages you build standard library yourself, I don't see any reason why C++ developers shouldn't consider this.


r/cpp • • 8d ago

C++ futures part 2: The mental model for std::promise, std::packaged_task

Thumbnail devblogs.microsoft.com
29 Upvotes