[llvm-dev] [RFC] Coding Standards: "prefer `int` for regular arithmetic, use `unsigned` only for bitmask and when you intend to rely on wrapping behavior."

Jake Ehrlich via llvm-dev llvm-dev at lists.llvm.org
Mon Jun 10 10:15:43 PDT 2019


I'm in the same situation James is in and thus have the same bias but I'll
+1 that comment nevertheless. I think I prefer using size_t or the uintX_t
types where applicable. Only when I need a signed value do I use one.

On Mon, Jun 10, 2019, 9:59 AM James Henderson via llvm-dev <
llvm-dev at lists.llvm.org> wrote:

> Maybe it's just because I work in code around the binary file formats
> almost exclusively, but unsigned (or more often uint64_t) is FAR more
> common than int everywhere I go. I don't have time right now to read up on
> the different links you provided, and I expect this is covered in them, but
> it also seems odd to me to use int in a loop when indexing in a container
> (something that can't always be avoided), given the types of size() etc.
>
> On Mon, 10 Jun 2019 at 17:26, Michael Kruse via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
>
>> Am Sa., 8. Juni 2019 um 13:12 Uhr schrieb Tim Northover via llvm-dev
>> <llvm-dev at lists.llvm.org>:
>> > I'd prefer us to have something neater than static_cast<int> for the
>> > loop problem before we made that change. Perhaps add an ssize (or
>> > equivalent) method to all of our internal data structures? They're a
>> > lot more common than std::* containers.
>>
>> +1
>>
>> Since C++20 is also introducing ssize [1] members, this makes a lot of
>> sense to me. Using it would help avoiding an unsigned comparison as in
>>
>>     if (IndexOfInterestingElement >= Container.size())
>>       ...
>>
>> to sneak in from the start.
>>
>> Michael
>>
>> [1] http://wg21.link/p1227r1
>> _______________________________________________
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org
>> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190610/c2fec688/attachment.html>


More information about the llvm-dev mailing list