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.

How about disallowing immutable data with extern(C++) types? With extern(C++) data always mutable, `const` could safely be reused to mean C++ const in bindings. Any `mutable`-style code would be implemented in C++.

Reply via email to