Is there any real reason to use "const"?
rempas at tutanota.com
Mon Jan 24 11:23:38 UTC 2022
On Monday, 24 January 2022 at 10:49:36 UTC, Dom DiSc wrote:
> You need const for functions that need to be able to take a
> mutable or immutable variable as parameter. And as you don't
> know which it is, you have to either propagate the constness or
> make a mutable copy if you want to call a function (depending
> if the called function has its parameter declared const or
> not). So better to declare const wherever that is possible, to
> _avoid_ making useless copies.
> I would NEVER EVER declare a variable const. It's always either
> mutable or immutable. I would go as far as forbidding to
> declare variables const, it's just confusing and useless. const
> is only for parameters.
That's what I'm saying. If there were no "const" and it was up to
the programmer to decide what to do, we wouldn't had to worry
about all that. Is you string pointing to a string literal? Then
don't use the "add" function to add more data to it! Or maybe
have a member in the "string type" that will check if the string
points to a string literal and in this case, allocate memory (for
both the old and the new value), copy the old value and then add
the new value! This is just so simple and easy for both the
creators of the language and the users
My point is if there is a true reason to implement "const" itself
other than just protecting programmers that haven't read the
documentation and are trying to modify a string literal? Any..
"practical" reason so to say.
More information about the Digitalmars-d