[llvm-dev] Variable names rule

Krzysztof Parzyszek via llvm-dev
Mon, 04 Feb 2019 20:51:08 -0000

On 2/4/2019 2:29 PM, Tim Northover via llvm-dev wrote:
> On Mon, 4 Feb 2019 at 20:21, JD Jones <jjones at prc-hsv.com> wrote:
>> If _<lowerCaseLetter> violates a standard, please say which one.
It does not violate the C++11 standard:
>
> If strictly adhered to, it doesn't, and I've never claimed any
> different. But coding standards are never strictly adhered to.
> Particularly not in a codebase like LLVM which already has a good
> handful in play for historical reasons. We can't expect reviewers to
> be perfect either, and violations of a leading underscore rule have a
> ridiculously high probability of producing malformed C++.
>
> It's simply not worth the aggro when there are plenty of other
> possibilities available that don't open us up for that failure mode.

IMO, any convention that contains leading or trailing underscores should
be rejected outright. The primary purpose of a convention is to allow a
person to differentiate between different kinds of elements with a quick
glance. It should strive to make these elements appear different without
sacrificing the readability. Prepending or appending a lone underscore
is really making the identifier as similar to another one as possible,
while still making it different from the language standard point of
view, i.e. the opposite to what a useful convention should do.

-Krzysztof