On Thu, 14 Apr 2011 11:28:39 -0400, spir <denis.s...@gmail.com> wrote:

On 04/14/2011 04:03 PM, Steven Schveighoffer wrote:
Sometimes, I worry that my unit tests or asserts aren't running. Every once in a while, I have to change one to fail to make sure that code is compiling (this is especially true when I'm doing version statements or templates). It would be nice if there was a -assertprint mode which showed asserts actually running
(only for the module compiled with that switch, of course).

Man, I'm very pleased to read someone else advocating for optionally verbose assertions.
This could use 2 arguments instead of a predicate:
     assert(expressions, value);
Example use:

[snip]

I don't think we can change assert syntax now. What I was looking was for something more like:

assert(x == y);

prints out

"asserting x == y: true"

for asserts that pass when you have the 'verbose assert' flag turned on. This should be easy to do in the compiler by just translating

assert(expr);

to something like:

auto result = evaluateAssert(expr);
print("asserting expr: ", result ? "true" : "false");
assert(result);

-Steve

Reply via email to