Re: size_t best practice

Liste des GroupesRevenir à cl c 
Sujet : Re: size_t best practice
De : tr.17687 (at) *nospam* z991.linuxsc.com (Tim Rentsch)
Groupes : comp.lang.c
Date : 19. Aug 2024, 00:23:58
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <86a5h9eagx.fsf@linuxsc.com>
References : 1 2 3
User-Agent : Gnus/5.11 (Gnus v5.11) Emacs/22.4 (gnu/linux)
Michael S <already5chosen@yahoo.com> writes:

On 18 Aug 2024 12:17:36 GMT
ram@zedat.fu-berlin.de (Stefan Ram) wrote:
>
Mark Summerfield <mark@qtrac.eu> wrote or quoted:
>
So is it considered best practice to use int, long, long long, or
size_t, in situations like these?
>
  In *cough*C++*cough* you could whip up a "SafeSize" class with
  a bulletproof "operator--", so you don't space on the check.
  You could still keep cranking out your code in what's basically C
and just cherry-pick this one gnarly feature from that other language.
>
SafeSize& operator--()
{ if( value == 0 )
  { throw std::underflow_error("SafeSize decrement underflow"); }
  --value;
  return *this; }
>
But that's not a desired behavior for people that want to write
downcounting for() loops in intuitive manner.

Kind of a funny use of the word intuitive, for two reasons.

The first is that writing for() loops, especially C for() loops,
is learned behavior.  There can be patterns that one is used to,
but they are not "intuitive" in the usual sense of the word.

The second is that people who program in C are accustomed to the
idea of an asymmetry between counting up and counting down,
because of how pointers work.  It's okay to increment a pointer
to one past the end of an array;  it is not okay to decrement a
pointer to one before the beginning of an array.  Because of that
the patterns for going forward and for going backward are just
different.  It seems odd to use the word "intuitive" to recognize
that distinction.

Which is not to say I disagree with what you are saying.  Actually
I guess I'd have to say I'm not sure what it is you are saying.
To my way of thinking the function above doesn't change the way I
would write down-counting loops.  It might be useful as a debugging
aid aide, but nothing more (and an assert() is probably better).
I think though that what you're saying is something else but I'm
not sure what it is.

Date Sujet#  Auteur
18 Aug 24 * size_t best practice23Mark Summerfield
18 Aug 24 +* Re: size_t best practice3Ike Naar
18 Aug 24 i`* Re: size_t best practice2Mark Summerfield
20 Aug 24 i `- Re: size_t best practice1Andrey Tarasevich
18 Aug 24 +- Re: size_t best practice1Michael S
18 Aug 24 +- Re: size_t best practice1Tim Rentsch
18 Aug 24 +* Re: size_t best practice6Stefan Ram
18 Aug 24 i+* Re: size_t best practice4Michael S
19 Aug 24 ii`* Re: size_t best practice3Tim Rentsch
19 Aug 24 ii `* Re: size_t best practice2Michael S
19 Aug 24 ii  `- Re: size_t best practice1Tim Rentsch
18 Aug 24 i`- Re: size_t best practice1Tim Rentsch
20 Aug 24 +* Re: size_t best practice7Andrey Tarasevich
20 Aug 24 i+* Re: size_t best practice3Andrey Tarasevich
20 Aug 24 ii`* Re: size_t best practice2Andrey Tarasevich
22 Aug 24 ii `- Re: size_t best practice1Tim Rentsch
22 Aug 24 i`* Re: size_t best practice3Tim Rentsch
22 Aug 24 i `* Re: size_t best practice2Ike Naar
22 Aug 24 i  `- Re: size_t best practice1Tim Rentsch
24 Aug 24 +* Re: size_t best practice3Bonita Montero
25 Aug 24 i`* Re: size_t best practice2Bonita Montero
26 Aug 24 i `- Re: size_t best practice1Vir Campestris
27 Aug 24 `- Re: size_t best practice1Bonita Montero

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal