Head Const

Marc Schütz via Digitalmars-d digitalmars-d at puremagic.com
Tue Feb 16 04:49:42 PST 2016


On Tuesday, 16 February 2016 at 11:27:56 UTC, Dicebot wrote:
> On 02/16/2016 12:48 AM, Walter Bright wrote:
>> rears its head again :-)
>> 
>> Head Const is what C++ has for const, i.e. it is not 
>> transitive, applies to one level only. D has transitive const.
>> 
>> What head const will do for us:
>> 
>> 1. make it easy to interface to C++ code that uses const, as 
>> currently it is not very practical to do so, you have to 
>> resort to pragma(mangle)
>> 
>> 2. supports single assignment style of programming, even if 
>> the data is otherwise mutable
>> 
>> The downside is, of course, language complexity.
>
> Moderately skeptical here. Adding features to the language for 
> the sake of C++ compatibility is good way to ensure C++ 
> compatibility will be its only domain of triumph. I'd expect 
> more justification for users who don't care about C++ but want 
> language which doesn't collapse under own weight.

`@mutable` OTOH would be a useful for both C++, reference 
counting, caching, lazy initialization... But we need to find a 
way to keep most of the existing guarantees, especially 
concerning shareability.


More information about the Digitalmars-d mailing list