On 4/15/16 5:01 PM, Andrei Alexandrescu wrote:
On 04/15/2016 04:45 PM, Steven Schveighoffer wrote:
On 4/15/16 4:34 PM, Andrei Alexandrescu wrote:
On 04/15/2016 04:16 PM, Steven Schveighoffer wrote:
If you find such advertisement useless, you of course do not need inout
or const.
Let's not exaggerate by putting them together. -- Andrei
This is not an exaggeration.
Jesus. C++ has const without inout. We used to have const without inout
- and we probably should again. -- Andrei
"C++ has it" is a terrible argument.
If you care about advertisement, you can't use templates to advertise
whether something is const or not. Your solution is "let's use templates
instead". That works, but obviously, compiler will let you molest
whatever data you want. Then advertisement is done with documentation
and trust.
C++ simply doesn't have that capability to advertise const for the
things inout can, but also const isn't as restrictive in C++, so you can
put const on things that aren't really const. IIRC Walter says C++ const
is useless for guarantees (and I agree with that).
Tell me what the benefits of const are. Pretty much all the arguments
you are saying for getting rid of inout (that don't involve corner cases
we can fix) can be used to say we should get rid of const too. Why stop
getting rid of complexity at inout?
-Steve