Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c > #154416
| From | Tim Rentsch <tr.17687@z991.linuxsc.com> |
|---|---|
| Newsgroups | comp.lang.c |
| Subject | Re: Two different Results between C and C++ |
| Date | 2020-09-02 23:00 -0700 |
| Organization | A noiseless patient Spider |
| Message-ID | <861rjj8kmz.fsf@linuxsc.com> (permalink) |
| References | (3 earlier) <60d0f73c-8588-4673-a48d-e5c4cc726196@googlegroups.com> <87blm1wam0.fsf@nosuchdomain.example.com> <86d05skg6z.fsf@linuxsc.com> <87tuz4gt4c.fsf@nosuchdomain.example.com> <CnSHG.29905$mK4.29698@fx03.iad> |
Richard Damon <Richard@Damon-Family.org> writes: > On 6/21/20 2:40 PM, Keith Thompson wrote: > >> Tim Rentsch <tr.17687@z991.linuxsc.com> writes: >> >>> Keith Thompson <Keith.S.Thompson+u@gmail.com> writes: >> >> [...] >> >>>> All these statements are true, but none are particularly relevant. >>>> You can construct an infinite number of valid C or C++ programs by >>>> playing games with the grammar. There are an infinite number of >>>> legal C programs that use conditional operators nested 10,000 >>>> levels deep, but I doubt that any such programs exist in the wild >>>> (except *maybe* as compiler capacity tests). I think it's more >>>> useful to look at actual code rather than contrived infinite sets >>>> of programs. >>>> >>>> There are *some* programs that are legal C but not legal C++. The >>>> most common causes of this are probably C++'s tighter restrictions >>>> on implicit conversions involving void*, C code that uses C++ >>>> keywords as identifiers, and C features that haven't been >>>> incorporated into C++, such as VLAs, _Generic, and compound >>>> literals. But almost all programs that are legal C but not legal >>>> C++ can be made into legal C++ with a small effort. >>> >>> This claim sounds like an article of faith, being offered without >>> either proof or evidence. If meant as just an empirical statement >>> then of course there is no way anyone can know that. >> >> When I wrote "almost all programs that are legal C but not legal >> C++", I was referring to real-world programs, not the infinite set >> of all possible programs. I probably could have made that clearer. >> >> My statement was not an "article of faith". It was somewhat >> speculative. I think it was correct, but it's not worth the effort >> to perform a major research project to verify it. >> >> [...] > > My experiance would be a bit different, most C programs from the > 'wild' would likely fail as C++ precisely because of the implicit > conversion from void* that does not happen in C++. These programs > can trivially be converted to programs which are valid in both C > and C++ by adding the explicit cast. [...] Lots of C programs fail as C++ because of constraint violations or syntax errors. The problems are (obviously) easy to find, and mostly I think easy to fix. The bigger problem is C code that is legal C++ but has different semantics in C++ than in C. There are more of these than most C or C++ developers think there are. I don't know anyone, including myself, who can say with confidence that they know all the different ways that source code can have a different meaning in C++ compared to C. Clearly if someone doesn't know what all the potential discrepancies are there is no way they could find and fix them.
Back to comp.lang.c | Previous | Next — Next in thread | Find similar
Re: Two different Results between C and C++ Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-09-02 23:00 -0700
Re: Two different Results between C and C++ Öö Tiib <ootiib@hot.ee> - 2020-09-03 09:57 -0700
Re: Two different Results between C and C++ David Brown <david.brown@hesbynett.no> - 2020-09-03 20:04 +0200
Re: Two different Results between C and C++ Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-09-04 06:44 -0700
Re: Two different Results between C and C++ Öö Tiib <ootiib@hot.ee> - 2020-09-05 06:51 -0700
Re: Two different Results between C and C++ Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-09-08 07:34 -0700
Re: Two different Results between C and C++ Öö Tiib <ootiib@hot.ee> - 2020-09-10 23:47 -0700
Re: Two different Results between C and C++ James Kuyper <jameskuyper@alumni.caltech.edu> - 2020-09-11 10:17 -0400
Re: Two different Results between C and C++ Öö Tiib <ootiib@hot.ee> - 2020-09-11 08:32 -0700
Re: Two different Results between C and C++ James Kuyper <jameskuyper@alumni.caltech.edu> - 2020-09-11 12:03 -0400
Re: Two different Results between C and C++ Öö Tiib <ootiib@hot.ee> - 2020-09-12 02:49 -0700
Re: Two different Results between C and C++ James Kuyper <jameskuyper@alumni.caltech.edu> - 2020-09-03 12:46 -0700
Re: Two different Results between C and C++ Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-09-10 06:20 -0700
Re: Two different Results between C and C++ James Kuyper <jameskuyper@alumni.caltech.edu> - 2020-09-10 07:37 -0700
Re: Two different Results between C and C++ James Kuyper <jameskuyper@alumni.caltech.edu> - 2020-09-10 10:44 -0400
csiph-web