Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Because it's a 0 overhead abstraction and guard against the case when you (or a coworker) forget to check for null. Are we seriously gonna pretend like you never caused a null pointer exception?


I don't see how it's zero overhead? And honestly while it's obviously not never, it's not exactly frequent either.


It's a zero overhead abstraction because it'll compile to the same code.


std::optional doesn't do that though, you can deref an empty optional and the result's the same as deref'ing an empty unique_ptr or a null pointer: UB.


But it makes you stop and thing before doing so. Thats the whole point.


It doesn't do that any more than a pointer




Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: