[llvm-dev] Variable names rule

JD Jones via llvm-dev llvm-dev at lists.llvm.org
Mon Feb 4 12:21:30 PST 2019

If _<lowerCaseLetter> violates a standard, please say which one. It does not violate the C++11 standard:

•Reserved in any scope, including for use as implementation macros: 
•identifiers beginning with an underscore followed immediately by an uppercase letter
•identifiers containing adjacent underscores (or "double underscore")

•Reserved in the global namespace: •identifiers beginning with an underscore

•Also, everything in the std namespace is reserved. (You are allowed to add template specializations, though.)

-----Original Message-----
From: Tim Northover [mailto:t.p.northover at gmail.com] 
Sent: Monday, February 4, 2019 2:17 PM
To: JD Jones <jjones at prc-hsv.com>
Cc: Robinson, Paul <paul.robinson at sony.com>; clattner at nondot.org; Michael Platings <Michael.Platings at arm.com>; llvm-dev <llvm-dev at lists.llvm.org>; nd <nd at arm.com>
Subject: Re: [llvm-dev] Variable names rule

On Mon, 4 Feb 2019 at 20:03, JD Jones <jjones at prc-hsv.com> wrote:
> Sorry, I'm not sure I follow.

In conventional English usage, acronyms always use upper-case. All other coding conventions deal with that situation gracefully (or at least not terribly). If someone strictly follows the coding convention you might end up with a weird identifier (m_tlaThatDoesSomething, m_tLAThatDoesSomething, ...); if they favour English over coding you get (m_TLAThatDoesSomething).

The leading underscore is unique in turning that last case into something that violates the language standard, and for me that's enough to eliminate it from contention. I strongly discourage its use in any C or C++ project.


This message is intended for the addressee only and may contain Paragon 
Research Corporation (PRC) confidential or privileged information.  Use or 
distribution of such confidential information is strictly prohibited 
without the prior written permission of PRC.  If you have received this 
message in error, please contact the sender immediately and delete the 
message and attachments from your computer.

More information about the llvm-dev mailing list