No parenthesis for assert?

Alex Rønne Petersen xtzgzorex at gmail.com
Thu Jan 12 14:56:54 PST 2012


On 12-01-2012 22:35, Peter Alexander wrote:
> On 12/01/12 4:34 PM, Alex Rønne Petersen wrote:
>> On 12-01-2012 16:57, Manfred Nowak wrote:
>>> Alex Rønne Petersen wrote:
>>>> Is there any reason parentheses are required
>>> Yes.
>>>
>>>> for all other use cases, it would be a nice thing to have.
>>> Maybe, but only when no `assert'-expression(!) is evaluated ever ...
>>> Because making parenthesis optional for `assert' would introduce
>>> ambiguities.
>>>
>>> -manfred
>>
>> Right, it would only make sense when it's used as a statement
>> expression. In all other cases, it wouldn't work, of course.
>>
>> - Alex
>
> assert can also have a message:
>
> assert(x == 0, "What's going on!?");
>
> This would look odd without parentheses.
>
> assert x == 0, "What's going on!?";
>
> Not to mention that it would be ambiguous with the comma operator:
>
> assert (a, b); // is this the comma operator, or two arguments?

I did point out that it would only really make sense for asserts without 
messages.

- Alex


More information about the Digitalmars-d mailing list