107
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
this post was submitted on 05 Oct 2024
107 points (95.0% liked)
Programming
17314 readers
88 users here now
Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!
Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.
Hope you enjoy the instance!
Rules
Rules
- Follow the programming.dev instance rules
- Keep content related to programming in some way
- If you're posting long videos try to add in some form of tldr for those who don't want to watch videos
Wormhole
Follow the wormhole through a path of communities !webdev@programming.dev
founded 1 year ago
MODERATORS
C++ with -Wall -Werror, and no pointer diddling.
Its definitely best to try and avoid raw pointers, but even if you try really hard I found it's not really possible to get a Rust-like experience with no UB.
Even something as simple as
std::optional
- you can easily forget to check it has a value and then boom, UB.The C++ committee still have the attitude that programmers are capable of avoiding UB if they simply document it, and therefore they can omit all sanity checks.
std::optional
could easily have thrown an exception rather than UB but they think programmers are perfect and will never make that mistake. There are similar wild decisions with more recent features like coroutines.They somehow haven't even learnt the very old lesson "safe by default".
If I wanted memory unsafety I think I would consider Zig instead of C++ at this point.
I recently got bitten by exactly that
std::optional
UB and here I was thinking ๐ค after 12+ years in the industry starting all the way back in the day with C++03 that modern C++ was supposed to make things better.๐