Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
| From | Ian Collins <ian-news@hotmail.com> |
|---|---|
| Newsgroups | comp.lang.c |
| Subject | Re: How do I set this type variable? |
| Date | 2016-09-19 17:00 +1200 |
| Message-ID | <e499ntFtdveU2@mid.individual.net> (permalink) |
| References | <9f7fba02-df47-4d06-aac3-27c01758c3e3@googlegroups.com> <nrhlbq$ocb$1@dont-email.me> <eecdb610-bfa0-4180-9303-10045d5a0940@googlegroups.com> <349c65aa-49e2-401a-ba29-faa48c276fd9@googlegroups.com> |
On 09/18/16 05:47 PM, supercat@casperkitty.com wrote: > On Saturday, September 17, 2016 at 7:19:21 PM UTC-5, Malcolm McLean wrote: >> You have two policies. One is "const correctness", whereby everything >> is const unless the function actually needs to change it. The >> other is rigorous elimination and deprecation of const as an >> undesirable programming construct. >> >> The problems are created in between. > > Many programming languages fail to recognize the concepts of a readable > pointer, a read-only pointer, and a pointer to an immutable object. All > three of them could be characterized as a "SomeType const *", but they > should have distinct meanings. > > Some libraries accept pointers from client code and later give those same > pointers back to client code. The libraries won't write through the > pointers, but won't care if client code does so with the originals or the > passed-back copies. Such pointers should be "readable". > > Some libraries accept pointers from client code and pass them on to other > code, and the copies of the pointers should never be written through. The > supplier of the pointers, however, may retain the right to write through > them, especially after the called function returns. Such pointers should > be "read-only". > > Some libraries may cache information read through pointers they receive, > and may malfunction if any code ever writes through them. The targets of > such pointers should be "immutable". > > Some ambiguities with pointer qualifiers could be resolved by having a > "return" qualifier, such that e.g. > > char *strchr(char return const *src, int match); > > would indicate that if the first past argument has a const qualifier, > the return value should be regarded as having one also, but if the > source argument does not have one, the return value shouldn't either. > Had such a qualifier been available when strchr was defined, that would > have avoided a lot of difficulties with functions like strchr. It would > not solve all such difficulties, especially in cases where a library > needs to store passed-in pointers between function calls, but it would > have helped many. Function overloading is a more elegant solution for this. -- Ian
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
How do I set this type variable? Thiago Adams <thiago.adams@gmail.com> - 2016-09-16 13:08 -0700
Re: How do I set this type variable? BartC <bc@freeuk.com> - 2016-09-16 21:40 +0100
Re: How do I set this type variable? Thiago Adams <thiago.adams@gmail.com> - 2016-09-16 13:57 -0700
Re: How do I set this type variable? Thiago Adams <thiago.adams@gmail.com> - 2016-09-16 14:07 -0700
Re: How do I set this type variable? jacobnavia <jacob@jacob.remcomp.fr> - 2016-09-16 23:32 +0200
Re: How do I set this type variable? Thiago Adams <thiago.adams@gmail.com> - 2016-09-17 12:05 -0700
Re: How do I set this type variable? BartC <bc@freeuk.com> - 2016-09-17 20:46 +0100
Re: How do I set this type variable? Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-09-17 17:19 -0700
Re: How do I set this type variable? supercat@casperkitty.com - 2016-09-17 22:47 -0700
Re: How do I set this type variable? luser droog <luser.droog@gmail.com> - 2016-09-18 13:44 -0700
Re: How do I set this type variable? Ian Collins <ian-news@hotmail.com> - 2016-09-19 17:00 +1200
Re: How do I set this type variable? David Brown <david.brown@hesbynett.no> - 2016-09-19 09:34 +0200
Re: How do I set this type variable? supercat@casperkitty.com - 2016-09-19 08:18 -0700
Re: How do I set this type variable? Richard Damon <Richard@Damon-Family.org> - 2016-09-23 12:07 -0400
Re: How do I set this type variable? Tim Rentsch <txr@alumni.caltech.edu> - 2016-09-23 11:57 -0700
csiph-web