Inherent code performance advantages of D over C?

Uplink_Coder someemail at someprovider.some
Sun Dec 15 14:53:17 PST 2013


On Sunday, 15 December 2013 at 11:52:17 UTC, Timon Gehr wrote:
> On 12/15/2013 02:20 AM, Walter Bright wrote:
>> On 12/14/2013 4:36 PM, Timon Gehr wrote:
>>> I cannot cast data from my own storage allocator to immutable 
>>> because the
>>> behaviour will be undefined.
>>>
>>> http://dlang.org/const3.html
>>>
>>> Is this a documentation bug? What should be the actual rules?
>>
>> It means it's up to you to ensure it is correct.
>
> Undefined behaviour is a term with a precise meaning. That site 
> says that casting a reference to immutable while there are 
> still live mutable references to memory reachable by that 
> reference leads to undefined behaviour. It is not possible to 
> 'ensure it is correct'.

being picky with words is not the right way to argue :D

anyhow.
since we are programmers we can change meaning perfectly well
<code>
alias good bad;
</code> there :D

Undefined behaviour may have a precise meaning to a academic, but 
for me as a programmer it means. AVOID THIS SITUATION !!! unless 
you know what you do!
Undefined behaviour for a compiler is a point where certin 
garuntees MAY be broken. casting something says : "Compiler my 
friend: Trust Me, I know what I do"  and since neither the 
compiler nor the compiler-writer can know wether you are REALLY 
trustworthy it can't and doesn't define behaviour for that case.


In this case you have to picture langauge as obeying the 
open-closed principle.
The advice Walter gave was adding to the avilable Information not 
subsituting it.


More information about the Digitalmars-d mailing list