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