D - more or less power than C++?
    Brad Roberts 
    braddr at puremagic.com
       
    Sun Mar  5 01:14:06 PST 2006
    
    
  
On Sat, 4 Mar 2006, Walter Bright wrote:
> "Jarrett Billingsley" <kb3ctd2 at yahoo.com> wrote in message 
> news:dudept$19qp$1 at digitaldaemon.com...
> > And in D, f(x) can be visually ambiguous as well - is the parameter in, 
> > out, or inout?
> 
> At least you know it's a function call, rather than a declaration of x of 
> type f! 
I've been trying to figure out when to say something on this topic since I 
fully understand just how difficult a topic const/immutability is and I 
know it's been thrashed around for years now.  That said, I think it's a 
seriously important feature for the safety and maintainability of code.
I view constness as one major aspect of contracts.  A function specifying 
that 'I will not alter the data you send me, and by implication neither 
will anything below me' give a major boost to the maintainability of a 
system.  A human writing that in a comment is totally insufficient.  The 
author could be wrong about a called function or a future change could 
invalidate the claim.  The language (and by implication the compiler) must 
support this guarantee.  As an asside, having such guarantees also gives 
the optimizer a boost in that it now has much more freedom to restructure 
code by knowing more.
I fully realize that C++'s const are incomplete.  I also don't personally 
have a full understanding of how to actually implement such protections.  
For now, let's not get caught up with the implementation specifics but 
rather defined semantics.
I want to be clear though, I'm not talking about const-ness of an 
instance, but of the barrier between callee and caller.
Make sense?
Later,
Brad
    
    
More information about the Digitalmars-d
mailing list