Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c++ > #71624

Re: two's complement idea

From Tim Rentsch <tr.17687@z991.linuxsc.com>
Newsgroups comp.lang.c++
Subject Re: two's complement idea
Date 2020-01-27 07:48 -0800
Organization A noiseless patient Spider
Message-ID <86mua8hpd9.fsf@linuxsc.com> (permalink)
References <qppva0$cbj$1@news.albasani.net> <slrnr2em4s.km3.grahn+nntp@frailea.sa.invalid> <r09bhj$1cbg$1@gioia.aioe.org> <r0a6k9$569$1@dont-email.me>

Show all headers | View raw


Christian Gollwitzer <auriocus@gmx.de> writes:

> Am 22.01.20 um 12:26 schrieb boltar@nowhere.org:
>
>> I have paint to watch drying instead.  Nice idiom
>>
>> No doubt it comes from the same ivory
>> tower that claims gotos should never be used.
>
> Ivory tower, for sure?  We have while, for, break, continue, return,
> and exceptions.  All these compile to some sort of goto in machine
> code.
>
> What good reasons are left for a literal goto?  I can see it in C for
> error handling (because it lacks exceptions) - in C++ there is hardly
> a good reason IMHO.

I won't make any arguments for a good use case for goto, but I
have some facts to report that might be of interest.

I looked for uses of goto (using grep -w) in a convenient corpus
of C and C++ code - mostly open source software packages, about
250 million lines.  By coincidence there were close to the same
number of lines of C source as lines of C++ source.

The number of goto's in C code was about five times the number of
goto's in C++ code.  However, considering just those files that
had at least one 'goto' in them, the rate of using goto was about
the same in C++ as in C:  just under 13 per 1000 lines in C++,
just over 14 per 1000 lines in C.  (Remember, that is looking
only at files that use 'goto' at least once.)  In the corpus as a
whole, the size of a source file in lines (measured by 'wc') was
on average about 20% higher for C code than for C++ code.
Considering just those files that had at least one 'goto' in
them, the sizes of source files was on average about one third
more for C++ than it was for C.

Switching now to personal experience, I am not dogmatic about
never using goto but it almost never comes up in code that I
write.  That applies to C as well as C++.  I do remember a case
that came up several years ago (I don't remember if it was C or
C++ but the same considerations would apply in both languages).
I had an awkward loop of the "loop and half" variety.  I tried
perhaps half a dozen different ways of writing it, but all those
I tried seemed unsatisfactory in some way.  The alternative that
seemed the best of the different ways I looked at rolled the loop
half way down so the exit was at the bottom but had to be entered
somewhere in the middle.  Of course that meant using a goto.  The
result still wasn't something I was really happy about;  it just
seemed better than all the other ways that I tried.  And that I
think is a good principle for goto generally:  explore as many
alternatives as reasonably feasible, and use goto only when all
the alternatives look worse.  That is my sense anyway, fwiw.

Back to comp.lang.c++ | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Re: two's complement idea Tim Rentsch <tr.17687@z991.linuxsc.com> - 2019-11-28 12:19 -0800
  Re: two's complement idea "Alf P. Steinbach" <alf.p.steinbach+usenet@gmail.com> - 2019-11-29 00:14 +0100
    Re: two's complement idea David Brown <david.brown@hesbynett.no> - 2019-11-29 09:15 +0100
      Re: two's complement idea Bo Persson <bo@bo-persson.se> - 2019-11-29 10:58 +0100
        Re: two's complement idea David Brown <david.brown@hesbynett.no> - 2019-11-29 12:49 +0100
    Re: two's complement idea Tim Rentsch <tr.17687@z991.linuxsc.com> - 2019-12-07 07:53 -0800
      Re: two's complement idea Öö Tiib <ootiib@hot.ee> - 2019-12-07 08:22 -0800
        Re: two's complement idea Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-01-10 20:44 -0800
          Re: two's complement idea Öö Tiib <ootiib@hot.ee> - 2020-01-10 23:44 -0800
            Re: two's complement idea Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-01-14 07:08 -0800
              Re: two's complement idea Öö Tiib <ootiib@hot.ee> - 2020-01-14 08:42 -0800
                Re: two's complement idea Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-01-21 02:09 -0800
                Re: two's complement idea James Kuyper <jameskuyper@alumni.caltech.edu> - 2020-01-21 05:14 -0800
                Re: two's complement idea Daniel <danielaparker@gmail.com> - 2020-01-21 13:08 -0800
                Re: two's complement idea James Kuyper <jameskuyper@alumni.caltech.edu> - 2020-01-22 00:07 -0500
                Re: two's complement idea Öö Tiib <ootiib@hot.ee> - 2020-01-21 23:21 -0800
                Re: two's complement idea Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-01-22 01:51 -0800
                Re: two's complement idea David Brown <david.brown@hesbynett.no> - 2020-01-22 11:28 +0100
                Re: two's complement idea Bonita Montero <Bonita.Montero@gmail.com> - 2020-01-22 11:52 +0100
                Re: two's complement idea Öö Tiib <ootiib@hot.ee> - 2020-01-22 04:47 -0800
                Re: two's complement idea Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-04-02 07:19 -0700
                Re: two's complement idea James Kuyper <jameskuyper@alumni.caltech.edu> - 2020-04-02 08:07 -0700
                Re: two's complement idea boltar@nowhere.org - 2020-01-21 16:44 +0000
                Re: two's complement idea Jorgen Grahn <grahn+nntp@snipabacken.se> - 2020-01-21 20:01 +0000
                Re: two's complement idea boltar@nowhere.org - 2020-01-22 11:26 +0000
                Re: two's complement idea Christian Gollwitzer <auriocus@gmx.de> - 2020-01-22 20:04 +0100
                Re: two's complement idea Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-01-22 11:30 -0800
                Re: two's complement idea Chris Vine <chris@cvine--nospam--.freeserve.co.uk> - 2020-01-22 19:57 +0000
                Re: two's complement idea Ian Collins <ian-news@hotmail.com> - 2020-01-23 10:03 +1300
                Re: two's complement idea boltar@nowhere.org - 2020-01-23 09:24 +0000
                Re: two's complement idea Ian Collins <ian-news@hotmail.com> - 2020-01-24 07:29 +1300
                Re: two's complement idea Ian Collins <ian-news@hotmail.com> - 2020-01-23 10:03 +1300
                Re: two's complement idea "Fred. Zwarts" <F.Zwarts@KVI.nl> - 2020-01-23 10:09 +0100
                Re: two's complement idea boltar@nowhere.org - 2020-01-23 09:29 +0000
                Re: two's complement idea Bart <bc@freeuk.com> - 2020-01-24 01:08 +0000
                Re: two's complement idea boltar@nowhere.org - 2020-01-24 12:27 +0000
                Re: two's complement idea Bart <bc@freeuk.com> - 2020-01-24 01:06 +0000
                Re: two's complement idea Bo Persson <bo@bo-persson.se> - 2020-01-24 10:07 +0100
                Re: two's complement idea Paavo Helde <myfirstname@osa.pri.ee> - 2020-01-24 11:36 +0200
                Re: two's complement idea Öö Tiib <ootiib@hot.ee> - 2020-01-24 17:34 -0800
                Re: two's complement idea Siri Cruise <chine.bleu@yahoo.com> - 2020-01-24 17:57 -0800
                Re: two's complement idea Bart <bc@freeuk.com> - 2020-01-24 12:19 +0000
                Re: two's complement idea Bo Persson <bo@bo-persson.se> - 2020-01-24 14:19 +0100
                Re: two's complement idea Bart <bc@freeuk.com> - 2020-01-24 14:11 +0000
                Re: two's complement idea Jorgen Grahn <grahn+nntp@snipabacken.se> - 2020-01-24 17:26 +0000
                Re: two's complement idea Bart <bc@freeuk.com> - 2020-01-24 17:35 +0000
                Re: two's complement idea Paavo Helde <myfirstname@osa.pri.ee> - 2020-01-24 22:27 +0200
                Re: two's complement idea James Kuyper <jameskuyper@alumni.caltech.edu> - 2020-01-24 23:21 -0500
                Re: two's complement idea Ian Collins <ian-news@hotmail.com> - 2020-01-25 11:06 +1300
                Re: two's complement idea Jorgen Grahn <grahn+nntp@snipabacken.se> - 2020-01-24 22:12 +0000
                Re: two's complement idea James Kuyper <jameskuyper@alumni.caltech.edu> - 2020-01-24 23:24 -0500
                Re: two's complement idea Jorgen Grahn <grahn+nntp@snipabacken.se> - 2020-01-25 09:04 +0000
                Re: two's complement idea Öö Tiib <ootiib@hot.ee> - 2020-01-25 04:15 -0800
                Re: two's complement idea David Brown <david.brown@hesbynett.no> - 2020-01-25 19:55 +0100
                Re: two's complement idea David Brown <david.brown@hesbynett.no> - 2020-01-25 00:05 +0100
                Re: two's complement idea Bart <bc@freeuk.com> - 2020-01-25 01:19 +0000
                Re: two's complement idea Ian Collins <ian-news@hotmail.com> - 2020-01-25 19:50 +1300
                Re: two's complement idea Bart <bc@freeuk.com> - 2020-01-25 11:57 +0000
                Re: two's complement idea Chris Vine <chris@cvine--nospam--.freeserve.co.uk> - 2020-01-25 13:42 +0000
                Re: two's complement idea Bart <bc@freeuk.com> - 2020-01-25 14:58 +0000
                Re: two's complement idea Ian Collins <ian-news@hotmail.com> - 2020-01-26 07:58 +1300
                Re: two's complement idea David Brown <david.brown@hesbynett.no> - 2020-01-25 20:34 +0100
                Re: two's complement idea Öö Tiib <ootiib@hot.ee> - 2020-01-25 12:41 -0800
                Re: two's complement idea Paavo Helde <myfirstname@osa.pri.ee> - 2020-01-26 16:08 +0200
                Re: two's complement idea Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-01-27 02:20 -0800
                Re: two's complement idea Paavo Helde <myfirstname@osa.pri.ee> - 2020-01-27 15:03 +0200
                Re: two's complement idea Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-02-15 06:44 -0800
                Re: two's complement idea Paavo Helde <myfirstname@osa.pri.ee> - 2020-03-06 10:18 +0200
                Re: two's complement idea Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-04-02 07:05 -0700
                Re: two's complement idea Paavo Helde <myfirstname@osa.pri.ee> - 2020-04-02 20:03 +0300
                Re: two's complement idea Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-04-04 12:37 -0700
                Re: two's complement idea Ian Collins <ian-news@hotmail.com> - 2020-01-26 07:45 +1300
                Re: two's complement idea Bart <bc@freeuk.com> - 2020-01-25 19:56 +0000
                Re: two's complement idea Ian Collins <ian-news@hotmail.com> - 2020-01-26 09:49 +1300
                Re: two's complement idea Bart <bc@freeuk.com> - 2020-01-25 21:33 +0000
                Re: two's complement idea Ian Collins <ian-news@hotmail.com> - 2020-01-26 11:00 +1300
                Re: two's complement idea Bart <bc@freeuk.com> - 2020-01-25 22:23 +0000
                Re: two's complement idea Ian Collins <ian-news@hotmail.com> - 2020-01-26 11:46 +1300
                Re: two's complement idea Paavo Helde <myfirstname@osa.pri.ee> - 2020-01-26 10:55 +0200
                Re: two's complement idea Öö Tiib <ootiib@hot.ee> - 2020-01-26 03:47 -0800
                Re: two's complement idea Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-01-27 01:28 -0800
                Re: two's complement idea Jorgen Grahn <grahn+nntp@snipabacken.se> - 2020-01-25 22:22 +0000
                Re: two's complement idea James Kuyper <jameskuyper@alumni.caltech.edu> - 2020-01-25 18:24 -0500
                Re: two's complement idea David Brown <david.brown@hesbynett.no> - 2020-01-26 12:54 +0100
                Re: two's complement idea Bart <bc@freeuk.com> - 2020-01-26 12:44 +0000
                Re: two's complement idea David Brown <david.brown@hesbynett.no> - 2020-01-26 14:58 +0100
                Re: two's complement idea Bart <bc@freeuk.com> - 2020-01-26 14:53 +0000
                Re: two's complement idea David Brown <david.brown@hesbynett.no> - 2020-01-26 19:10 +0100
                Re: two's complement idea Robert Wessel <robertwessel2@yahoo.com> - 2020-01-26 13:20 -0600
                Re: two's complement idea Bart <bc@freeuk.com> - 2020-01-26 20:51 +0000
                Re: two's complement idea Robert Wessel <robertwessel2@yahoo.com> - 2020-01-26 21:02 -0600
                Re: two's complement idea Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-01-26 19:06 -0800
                Re: two's complement idea Bart <bc@freeuk.com> - 2020-01-27 18:50 +0000
                Re: two's complement idea Robert Wessel <robertwessel2@yahoo.com> - 2020-01-27 14:18 -0600
                Re: two's complement idea David Brown <david.brown@hesbynett.no> - 2020-01-27 22:13 +0100
                Re: two's complement idea Bart <bc@freeuk.com> - 2020-01-27 21:38 +0000
                Re: two's complement idea Robert Wessel <robertwessel2@yahoo.com> - 2020-01-27 19:37 -0600
                Re: two's complement idea Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-01-27 19:15 -0800
                Re: two's complement idea "Fred. Zwarts" <F.Zwarts@KVI.nl> - 2020-01-28 11:45 +0100
                Re: two's complement idea Ian Collins <ian-news@hotmail.com> - 2020-01-27 16:31 +1300
                Re: two's complement idea Manfred <noname@add.invalid> - 2020-01-26 18:50 +0100
                Re: two's complement idea Jorgen Grahn <grahn+nntp@snipabacken.se> - 2020-01-26 18:57 +0000
                Re: two's complement idea David Brown <david.brown@hesbynett.no> - 2020-01-26 20:46 +0100
                Re: two's complement idea Robert Wessel <robertwessel2@yahoo.com> - 2020-01-26 13:14 -0600
                Re: two's complement idea David Brown <david.brown@hesbynett.no> - 2020-01-26 22:15 +0100
                Re: two's complement idea Robert Wessel <robertwessel2@yahoo.com> - 2020-01-27 21:06 -0600
                Re: two's complement idea David Brown <david.brown@hesbynett.no> - 2020-01-28 13:08 +0100
                Re: two's complement idea Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-01-27 01:50 -0800
                Re: two's complement idea Ian Collins <ian-news@hotmail.com> - 2020-01-27 08:21 +1300
                Re: two's complement idea David Brown <david.brown@hesbynett.no> - 2020-01-25 20:14 +0100
                Re: two's complement idea David Brown <david.brown@hesbynett.no> - 2020-01-25 20:12 +0100
                Re: two's complement idea Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-01-27 07:48 -0800
                Re: two's complement idea Bonita Montero <Bonita.Montero@gmail.com> - 2020-02-18 18:46 +0100

csiph-web