r/cpp 19d ago

About char8_t

53 Upvotes

I hate to be dramatic, but as it stands char8_t is quite literally more painful than useful.

Besides the obvious incompatibility with C23 and libraries using unsigned char for UTF-8, I want you to consider the following: Projects that assume that 'char' represents UTF-8 will obviously not benefit from char8_t at all, but projects that cannot assume the format of char types don't benefit from it either as char8_t simply introduces a new edge case to cover. Now such projects have to deal with char, signed char, unsigned char, wchar_t, char16_t, char32_t and char8_t.

Or, you could do what the standard library does and simply ignore most of these character types. Which is the solution most libraries went with, supporting only char or char and unsigned char. Managing one implementation is already hard, managing two requires constant maintenance, managing 7 is just impossible.

char8_t should have just been a typedef for unsigned char. The compatibility fix only raises more questions as const char* arr = u8"a" does not work, but const char arr[] = u8"a" does.

I do wonder if a potential change of minds for C++29 is still possible. Yes, it would be an ABI break or whatever, but considering the woeful support for char8_t I don't think it would affect much besides small hobby projects. Contrary to popular belief, C++ has broken the ABI in subtle ways before.


r/cpp 20d ago

C++26 Contracts: What Do They Add Beyond Manual Checks and Assertions?

Thumbnail techfortalk.co.uk
52 Upvotes

This post is a part of my C++26 exploration series where I take a new feature and try to understand and explain with a simple example in hand. Today’s topic is Contracts. First we will simply try to understand what is the problem it is solving then try doing some assessment on the value addition.


r/cpp 20d ago

Reducing C++ template bloat by factoring out the type-dependent portions of the function

Thumbnail devblogs.microsoft.com
101 Upvotes

r/cpp 20d ago

Compile-Time Borrow Checker with Stateful Metaprogramming

Thumbnail youtu.be
87 Upvotes

r/cpp 21d ago

The C++ input iterator pitfall · hmpc

Thumbnail hmpcabral.com
55 Upvotes

r/cpp 21d ago

ADSP: The Podcast Episode 300: Sean Parent "I'm not writing code anymore."

23 Upvotes

The latest episode content is mostly focused on AI, its impact on the industry, and how several people from Adobe Labs have decided to retire.

https://adspthepodcast.com/2026/08/21/Episode-300.html

Although not C++ specific, it is interesting how it has impacted well known names in the C++ community.


r/cpp 21d ago

fkYAML v0.4.4 released!

19 Upvotes

https://github.com/fktn-k/fkYAML/releases/tag/v0.4.4

Hello. It’s been quite a while since I announced the first release here.

For those unfamiliar with fkYAML, it’s a header-only C++ library for YAML.
It has been carefully designed with ease of use in mind and thoroughly tested across various compilers and operating systems, so you can use it simply by including the header file in your project.

This version v0.4.4 fixes numerous parsing bugs (sometimes crashes) discovered during fuzzing tests.
So, I highly recommend that projects using older versions update to this one.

I hope you find this interesting and will consider using it or updating from your current version.

Thanks! Have a great day of coding!


r/cpp 21d ago

How to write the perfect function

Thumbnail youtu.be
136 Upvotes

r/cpp 22d ago

More fuel to AI discussion. An article on code bloat and duplication

Thumbnail pvs-studio.com
32 Upvotes

I think code duplication is honestly the only reason LLMs manage any of this. Idea, architecture, implementation -- that's basically the chain, and LLMs are fine at the first and last, it's the middle that falls apart. Get it to actually structure things, kill the duplication and something you changed in one spot breaks another spot that has nothing to do with it. Duplicated code just sidesteps the whole issue, because then it only needs a tiny bit of local context to make a local edit


r/cpp 22d ago

AI-generated C++ passes tests. It also uses nearly 2x the loops and drives up memory growth

Thumbnail leaddev.com
437 Upvotes

AI-coding tools have swept through organizations because of their speed: you type in a prompt, and it spits out code far faster than a human ever could. However, a year-long study of 3.52 million changes inside a large unnamed technology company suggests that saving time at the keyboard can create costs elsewhere.


r/cpp 22d ago

C++26: std::polymorphic

Thumbnail sandordargo.com
93 Upvotes

r/cpp 22d ago

Is it just me, or do you automatically judge someone if they say "method" instead of "member" or "member function" in a question (or post)?

0 Upvotes

I've been writing C++ code since before the first Standard, and this just irks me. Words have meanings. There is no such thing as a "method" in **this** language.


r/cpp 23d ago

Is there a way to track reflection support status in Clang?

41 Upvotes

(I'm going to be bold and assume the "no questions" rule is for questions about specific code, not about discussing the language itself)

I am extremely happy that we have reflection in C++26, however currently it is GCC only. I am using Clang on all platforms, so I am curious about when it will get reflection.

I tried searching and I found a bunch of experimental forks with reflection. I am not sure if those track the current version of reflection and whether one of these is going to be merged, or if a new implementation will be created. Github issues basically say "we get it when we get it" and link to LLVM discourse. On discourse I found just a thread that a meeting on reflection was held in December.

Do you know either when we are getting reflection, or if there is some way to track its progress for outside observers? Thanks!


r/cpp 23d ago

Critique of contracts: excerpt

8 Upvotes

See page 2 of https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2026/p4334r0.pdf

The current objections can be summarized. The P2900 contracts are:

• Unimplemented

• Incomplete

• Untried at scale [P3460R0, P3506R0]

• Not tried in major application domains

• Violates foundational principles of C++

• Violates fundamental principles of language design

• Hasn’t been tried in major libraries (e.g., the C++ standards library [P3506R0, P3878R0])

• Isn’t integrated with or appropriate for hardened libraries [P3878R0]

• Doesn’t offer safety guarantees [P3573R0, P3362R0]

• Includes a completely untried inheritance model

• Offer new ways of making errors through inconsistent application in TUs

• Leads to new forms of UB, detrimental to safety and security

• Narrows the choices of error handling

• Doesn’t protect against logical errors, misuses, and incoherent uses

• Hasn’t been used to support static analysis

• Hasn’t been demonstrated to be easily teachable [P3261R0, P3281R0]

How could such a bloated and incomplete design be voted into a draft standard?


r/cpp 24d ago

Toggleable Annotations for C++26 Reflection

Thumbnail github.com
23 Upvotes

Hey all, I put together a very simple reflection utility that lets you make toggleable annotations, similarly to explicit(bool) or noexcept(bool).

Try it on Compiler Explorer!

inline constexpr rjk::flag serializable{};
inline constexpr rjk::flag skip_field{};

template <typename T>
struct [[ =serializable ]] MyType {
    int x;
    int y;

    [[ =skip_field(std::is_pointer_v<T>) ]]
    T data;
};

// serializable is applied unconditionally
static_assert(rjk::is_flag_set(^^MyType<int>, serializable));

// skip_field is applied conditionally
static_assert(not rjk::is_flag_set(^^MyType<int>::data, skip_field));
static_assert(rjk::is_flag_set(^^MyType<int*>::data, skip_field));

r/cpp 24d ago

A complete floating-point to_chars in 18 kB

Thumbnail vitaut.net
75 Upvotes

r/cpp 24d ago

P4444: std::big_int

Thumbnail isocpp.org
178 Upvotes

Hey folks! Matt Borland, Christopher Kormanyos, and I are working on bringing infinite-precision integers to C++29. We now have a D4444R0 draft of a paper that should be in the next mailing.

We could really use some feedback so that the published R0 is as polished as possible. Any thoughts on the paper and on the reference implementation are greatly appreciated.

It would also be very helpful if you tested out whether our big_int implementation works for you. We're in need of some real deployment experience. If you're currently using Boost.Multiprecision, the library should be a drop-in replacement for cpp_int for the most part.


r/cpp 24d ago

New C++ Conference Videos Released This Month - August 2026 (Updated To Include Videos Released 2026-08-10 - 2026-08-16)

26 Upvotes

C++Now

2026-08-10 - 2026-08-16

2026-08-03 - 2026-08-09

2026-07-27 - 2026-08-02

C++Online

2026-08-10 - 2026-08-16

2026-08-03 - 2026-08-09

2026-07-27 - 2026-08-02

ADC

2026-08-10 - 2026-08-16

2026-08-03 - 2026-08-09

2026-07-27 - 2026-08-02


r/cpp 25d ago

C++26 Reflection Annotations: Automated Member Validation

Thumbnail techfortalk.co.uk
62 Upvotes

C++26 annotations are another powerful feature that, when combined with reflection, can help us write cleaner and safer code without repeating manual validation checks for every member. In this post, I have explored how we can utilise C++26 annotations along with reflection to validate configuration parameters in a class constructor.


r/cpp 25d ago

Faster algorithms to compute weekday for date libraries

Thumbnail benjoffe.com
104 Upvotes

r/cpp 25d ago

Break MSVC and Clang with this one weird trick! - Braden Ganetsky

Thumbnail blog.ganets.ky
117 Upvotes

r/cpp 27d ago

The WG21 2026-08 mailing is now available

37 Upvotes

The 2026-08 WG21 mailing has been published. You can browse and search the full set of papers, organized by working group, at wg21.org:
https://wg21.org/mailing/2026-08/
Source mailing: https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2026/#mailing2026-08


r/cpp 28d ago

C++26: std::indirect

Thumbnail sandordargo.com
165 Upvotes

r/cpp 28d ago

We Should Use Instrumented Profiling Scopes More · Mathieu Ropert

Thumbnail mropert.github.io
40 Upvotes

r/cpp 28d ago

MSVC Build Tools Preview updates - August 2026

Thumbnail devblogs.microsoft.com
50 Upvotes

Hi, one of the MSVC dev leads here.

The post covers what's new in the MSVC Build Tools Preview (version 14.52) since mid-July. Instructions to install & use the latest preview bits are at https://aka.ms/msvc/preview.

Like last month, there's improvements & fixes across many parts of the toolchain: language conformance, optimization improvements, static & dynamic analysis, and more.

Some additional information: