Head Const

extrawurst via Digitalmars-d digitalmars-d at puremagic.com
Wed Feb 24 11:28:28 PST 2016


On Wednesday, 24 February 2016 at 09:57:51 UTC, Atila Neves wrote:
> On Monday, 15 February 2016 at 22:48:16 UTC, 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.
>
> I think that increasing language complexity for the sake of C++ 
> integration is a dubious trade-off, especially since "all" 
> that's required is correct name mangling. There's no guarantee 
> of what the C++ side can do with any type of constness anyway, 
> I'd say that any "extern(C++)" mangles as C++ would and leave 
> it at that.
>
> Atila

I agree with that concern. I would rather see the effort being 
used to improve D - e.g support for GC-free code than to help us 
integrate the complexity of C++ that D was intended to get rid of.

--Stephan


More information about the Digitalmars-d mailing list