| ▲ | eterm 12 hours ago |
| Better yet, `assert(false, message)`, with the message what you would have written in the comment. |
|
| ▲ | andrewf an hour ago | parent | next [-] |
| Swap the parameters around for C++ and similar langs where `assert(a, b)` evaluates the same as `(void) a; assert(b)`. |
|
| ▲ | addaon 12 hours ago | parent | prev [-] |
| `assert(false)` is pronounced "this can never happen." It's reasonable to add a comment with /why/ this can never happen, but if that's all the comment would have said, a message adds no value. |
| |
| ▲ | eterm 12 hours ago | parent | next [-] | | Oh I agree, literally `assert(false, "This cannot happen")` is useless, but ensuring message is always there encourages something more like, `assert(false, "This implies the Foo is Barred, but we have the Qux to make sure it never is")`. Ensuring a message encourages people to state the assumptions that are violated, rather than just asserting that their assumptions (which?) don't hold. | |
| ▲ | breatheoften 8 hours ago | parent | prev [-] | | what language are we talking about? If it's cpp then the pronounciation depends on compiler flags (perhaps inferred from CMAKE_BUILD_TYPE) |
|