3 ms·
Better yet, `assert(false, message)`, with the message what you would have written in the comment.
by eterm 9mo ago
Better yet, `assert(false, message)`, with the message what you would have written in the comment.
- addaon 9mo ago`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 9mo agoOh 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 9mo agowhat language are we talking about? If it's cpp then the pronounciation depends on compiler flags (perhaps inferred from CMAKE_BUILD_TYPE)
- andrewf 9mo agoSwap the parameters around for C++ and similar langs where `assert(a, b)` evaluates the same as `(void) a; assert(b)`.