C++ Logo

std-proposals

Advanced search

Prevent Assignments from contextually converting to bool

From: connor horman <chorman64_at_[hidden]>
Date: Wed, 23 Oct 2019 12:35:18 -0400
This is my proposed to solution to one of the worst logic errors in any
number of languages, being:
if(i=0)
vs.
if(i==0)

The proposal is to tweak the wording of contextual conversions to bool,
prohibiting unparenthesised assignments from being eligible for contextual
conversion. Code that intends to do this can simply put parenthesis around
the assignment or use an init-statement, and code that does this without
intention (i.e. intends the comparison) would be elevated from a logic
error (the worst kind honestly) to a compile-time error.

Received on 2019-10-23 11:37:44