Why do "const inout" and "const inout shared" exist?
Andrei Alexandrescu via Digitalmars-d
digitalmars-d at puremagic.com
Sun Jul 2 05:51:06 PDT 2017
On 07/02/2017 08:46 AM, Shachar Shemesh wrote:
> Second, there are optimizations that can take place over "const" that
> cannot over "shared const" even assuming aliasing (such as if the
> compiler knows no other pointer was changed between two accesses).
Wouldn't that also fall within the realm of inclusion polymorphism?
> The last point is that assuming no pointer aliasing is a fairly common
> optimization to take in C and C++, simply because of the huge
> performance gains it provides. It is so huge that it is sometimes turned
> on by default despite the fact it changes language semantics. It would
> be a pity to block any potential to have it in D.
Allowing the conversion does not preclude any optimization; after all
there is no replacement of one with another. The conversion simply
removes unnecessary restrictions.
Andrei
More information about the Digitalmars-d
mailing list