Sutter's video
The other day I watched Sutter's YouTube video about 3 cool things in C++ 26:
- Make C++ safer by replacing undefined behavior (UB) with erroneous behavior (EB)
- Reflection
- Yet another syntax for async
Safe C++
Sutter mentions two aspects:
- uninitialized local variables will be mangled. The compiler may inject code to check if uninitialized variables are accessed.
- hardening of STL; most notably operator[]
I question also the first bullet: why not make it simpler and state that every variable will be default or zero initialized. There is no EB or UB necessary; or no hidden code injected by the compiler.
Some of the hardened STL functions are unnecessary. There are already 'at()' functions which bounds check. A safety profile could warn for use of operator[].
Reflection
Nice that reflection is added but I wonder if the C++ committee has the right priorities. The standard library even lacks a standard JSON or XML library which would be an ideal candidate for automatic serialization through reflection.
Async
They added a new superfluous new syntax. So much for consistency.
No comments:
Post a Comment