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

James Henderson via llvm-dev llvm-dev at lists.llvm.org
Mon Jun 10 09:58:50 PDT 2019


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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190610/edad9af1/attachment.html>


More information about the llvm-dev mailing list