const
    Bill Baxter 
    dnewsgroup at billbaxter.com
       
    Mon Mar 31 13:18:36 PDT 2008
    
    
  
Steven Schveighoffer wrote:
> "Walter Bright" wrote
>> I understand what you're saying. It's simply finding a method of 
>> transferring the 'constness' of the function argument to the function 
>> return type, without changing the contents of the function.
>>
>> Note that this is *not* a problem with const or invariant, it's a 
>> notational problem.
>>
>> This is currently done in C++ (and D) by writing each function twice. 
>> Obviously, that is hardly ideal.
>>
>> There have been some proposals to deal with it, but the current front 
>> runner is one Andrei came up with:
>>
>> typeof(a) foo(const(T) a) { ... }
> 
> What if the return can come from multiple inputs?  Such as the min/max 
> function:
> 
> typeof(a or b?) min(const(T) a, const(T) b) {...}
> 
And also what about the case of returning a member of a struct?
     typeof(Bar?) getBar(const(Foo) f) {  return f.bar; }
My problem with these new declarations is just that there are so many 
dang parentheses in the function signatures that it's hard to see what's 
what any more.
--bb
    
    
More information about the Digitalmars-d
mailing list