Comment by dccsillag
5 hours ago
I'm sorry, but what exactly is the problem with the code? I've been staring at it for quite a while now and still don't see what is counterintuitive about it.
5 hours ago
I'm sorry, but what exactly is the problem with the code? I've been staring at it for quite a while now and still don't see what is counterintuitive about it.
Depends on where you're coming from, but some people would expect it to enforce that the pointer is non-null, then proceed. Which would actually give you a guaranteed crash in case it is null. But that's not what it does in C++, and I could see it not being entirely obvious.
Assert doesn't work like that in any language.
It does in Rust: assert is always enabled, whereas the debug-only version is called debug_assert.
But yes, “assert” in most languages is debug-only.
There's nothing wrong with it. It does exactly what you think it does when passed null.