C++26: Reflection, Memory Safety, Contracts, and a New Async Model

Posted by birdculture 1 day ago

Counter39Comment5OpenOriginal

Comments

Comment by vsgherzi 1 day ago

Very cool stuff, excited to see some progress into memory safety for c++ but jeez. As i understand it, it requires me to do some meta programming to build guards around my program and ensure memory safety? Is that accurate or am I missing the mark here

Comment by spacechild1 1 day ago

No, it's just that there's now a hardened version of the standard library that does bound checks at runtime.

Compile-time reflection is an entirely different feature and has nothing to do with memory safety.

The article also mentions contracts that can be used to validate pre- and postconditions of function calls.

Comment by HeliumHydride 1 day ago

The class(metaclass) {...} syntax is not part of C++ yet. It is part of a proposal targeted for C++29.

Comment by nulltrace 1 day ago

Right, metaclass is a ways off. But even without it, just the core reflection is going to save a ton of boilerplate. Half the template tricks I've written for message parsing were basically hand-rolling what `^T` will just give you.

Comment by fithisux 22 hours ago

I am still wondering if the compiler can become simpler any time soon.