suggestion: default values
    Daniel Keep 
    daniel.keep.lists at gmail.com
       
    Thu Apr 19 23:19:29 PDT 2007
    
    
  
Gregor Richards wrote:
> bobef wrote:
>> It would be nice if there was some character like $ or something, if
>> used as function argument, the default value for this argument to be
>> used. What I mean is this:
>>
>> void myfun(int a,char[] b,bool d=false,int e=55){}
>>
>> void main()
>> {
>>     myfun(5,"5",$,$); // which should act like myfun(5,"5",false,55);
>> }
> 
> Probably a better example of why this would be helpful:
> 
> void myfunction(int a, char[] b, Foo veryComplicatedThing = default,
> bool d = true) {}
> 
> void main()
> {
>     myfunction(5,"5",$,false);
> }
We already have the perfect keyword for this: default.
void main()
{
    myfunction(5, "5", default, false);
}
A little more verbose, but pretty self-explanatory as to what it does.
Also, keep in mind that "$" already means array length inside of a
slice; I think it would be a bad idea to overload it with a completely
different meaning.
On a side note, you can do something vaguely similar using templated
functions and "typedef int DefaultType; const Default =
DefaultType.ini;" like so:
const int e_default = 55;
void myfunction(T)(T _e=Default)
{
    static if( is( T == DefaultType ) )
       e = e_default;
    else
       e = e;
}
Or somesuch; been a while since I did that :)
	-- Daniel
-- 
int getRandomNumber()
{
    return 4; // chosen by fair dice roll.
              // guaranteed to be random.
}
http://xkcd.com/
v2sw5+8Yhw5ln4+5pr6OFPma8u6+7Lw4Tm6+7l6+7D
i28a2Xs3MSr2e4/6+7t4TNSMb6HTOp5en5g6RAHCP  http://hackerkey.com/
    
    
More information about the Digitalmars-d
mailing list