On 12/10/2017 06:39, Grant Edwards wrote:
On 2017-10-11, Gregory Ewing <greg.ew...@canterbury.ac.nz> wrote:
Neil Cerutti wrote:
I dig
const qualifiers, even though I'm comletely fine with their
absence from Python.
Out of curiosity, do you have any insights into why you
like them in C++, if you don't miss them in Python?
I like them in C because it allows the linker to place them in ROM
with the code. It also _sometimes_ provides useful diagnostics when
you pass a pointer to something which shouldn't be modified to
something that is going to try to modify it.
It's one of these features that on paper sound good. In practice, it's
just useless extra clutter. It's used to:
(1) Define named constants; except (in C) they can't be used like
constant expressions, you can take their addresses, and accidentally or
maliciously change their values.
(2) Declare data to be put into read-only memory as you say. That's fine
with a 'const int * p', but what about a 'int * const p'? (Or is it the
other way around? Whatever...). Or any other hybrid type where some
elements are const and some aren't.
(3) Pass data that is supposed to be read-only, but with any even
slightly complex type, it won't work (the head of a linked list for
example, where the node elements need to be writeable). It gives a false
sense of security.
--
bartc
--
https://mail.python.org/mailman/listinfo/python-list