3 ms·
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 neve
by gnulinux 8y ago
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?
- masklinn 8y agostd::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.
- basil-rash 8y agoBut it makes you stop and thing before doing so. Thats the whole point.
- masklinn 8y agoIt doesn't do that any more than a pointer
- mehrdadn 8y agoI don't see how it's zero overhead? And honestly while it's obviously not never, it's not exactly frequent either.
- gnulinux 8y agoIt's a zero overhead abstraction because it'll compile to the same code.