Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c++ > #69676
| From | Tim Rentsch <tr.17687@z991.linuxsc.com> |
|---|---|
| Newsgroups | comp.lang.c++ |
| Subject | Re: Strange code-generation |
| Date | 2019-11-09 05:52 -0800 |
| Organization | A noiseless patient Spider |
| Message-ID | <86y2wpcg25.fsf@linuxsc.com> (permalink) |
| References | <qlo0kb$uhe$1@news.albasani.net> <qlo4fl$hv4$1@dont-email.me> <867e654ndj.fsf@linuxsc.com> <qltrnv$t19$1@dont-email.me> |
Paavo Helde <myfirstname@osa.pri.ee> writes: > On 18.09.2019 18:47, Tim Rentsch wrote: > >> Paavo Helde <myfirstname@osa.pri.ee> writes: >> >>> In standard C++ one cannot legally construct a "null reference", so >>> the standard cannot mandate any behavior regarding them. [...] >> >> Sure it could. The Standard doesn't say that they can't exist, >> and even if they couldn't exist the Standard could still specify >> a behavior for how they must be treated. And it might even be >> useful to give such a specification, for implementations that >> choose to provide null references by means of an extension. > > By that logic the C++ standard could also prescribe how the SQL > language or the invisible unicorn in my garage must behave, in the > case someone happens to incorporate them into their C++ > implementation. These analogies are pretty much meaningless, because the terms are not in the universe of discourse for the C++ language. The term "reference" is in the C++ universe of discourse, and every C++ programmer understands what "null reference" means, in that context, by analogy with "null pointer". In fact the term "null reference" appears in the C++ standard, as you point out. > More to the point, the standard contains the following verbiage: > "A reference shall be initialized to refer to a valid object or > function. [ Note: in particular, a null reference cannot exist in a > well-defined program, because the only way to create such a reference > would be to bind it to the ?object? obtained by indirection through a > null pointer, which causes undefined behavior. ]" Saying "a null reference cannot exist in a well-defined program" is a circular statement; it has no information content, because of what is meant by well-defined. Also, just because a construct has undefined behavior doesn't mean the result can't exist. Obviously it can exist, because the implementation is free to define the meaning. > Without contradicting itself, the standard cannot say in one place "A > reference shall be initialized to refer to a valid object" and > "behavior is undefined" and then go on and discuss in another place > what happens if a program violates this "shall", thus defining the > behavior. There is no contradiction. What would (hypothetically) be being defined is not declaring/initializing a null reference, but using a null reference. Do you not understand the distinction? (Sorry to be so long in responding, life has been unusually chaotic of late.)
Back to comp.lang.c++ | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Strange code-generation Bonita Montero <Bonita.Montero@gmail.com> - 2019-09-16 14:53 +0200
Re: Strange code-generation Paavo Helde <myfirstname@osa.pri.ee> - 2019-09-16 16:59 +0300
Re: Strange code-generation Bonita Montero <Bonita.Montero@gmail.com> - 2019-09-16 21:08 +0200
Re: Strange code-generation Tim Rentsch <tr.17687@z991.linuxsc.com> - 2019-09-18 08:47 -0700
Re: Strange code-generation Paavo Helde <myfirstname@osa.pri.ee> - 2019-09-18 21:06 +0300
Re: Strange code-generation Tim Rentsch <tr.17687@z991.linuxsc.com> - 2019-11-09 05:52 -0800
Re: Strange code-generation "Alf P. Steinbach" <alf.p.steinbach+usenet@gmail.com> - 2019-11-09 19:15 +0100
Re: Strange code-generation Bonita Montero <Bonita.Montero@gmail.com> - 2019-09-19 19:05 +0200
Re: Strange code-generation David Brown <david.brown@hesbynett.no> - 2019-09-19 19:34 +0200
Re: Strange code-generation Bonita Montero <Bonita.Montero@gmail.com> - 2019-09-19 20:05 +0200
Re: Strange code-generation Paavo Helde <myfirstname@osa.pri.ee> - 2019-09-19 22:00 +0300
Re: Strange code-generation David Brown <david.brown@hesbynett.no> - 2019-09-20 08:21 +0200
csiph-web