const argument

TSalm TSalm at free.fr
Sun Mar 29 12:17:16 PDT 2009


Le Sat, 28 Mar 2009 17:52:54 +0100, TSalm <TSalm at free.fr> a écrit:

> Le Sat, 28 Mar 2009 12:21:52 +0100, Jarrett Billingsley  
> <jarrett.billingsley at gmail.com> a écrit:
>
>> On Sat, Mar 28, 2009 at 6:12 AM, TSalm <TSalm at free.fr> wrote:
>>> Hello,
>>>
>>> Is there a way to specifie a constant argument ( I would say an  
>>> argument for
>>> which his value is evaluate at compile time )
>>>
>>> For example, something like this :
>>>
>>> /* -------- CODE --------- */
>>> import tango.io.Stdout;
>>>
>>> void func(const bool constArg)
>>> {
>>>    static if (constArg)
>>>        Stdout("Yes").newline;
>>>    else
>>>        Stdout("No").newline;
>>> }
>>>
>>> void main()
>>> {
>>>    func( true );
>>>    func( false );
>>> }
>>> /* -------- END CODE --------- */
>>
>> You have to do it with templates:
>>
>> void func(bool constArg)()
>> {
>>     static if(constArg) ... else ...
>> }
>>
>> func!(true)();
>> func!(false)();
>>
> Thanks.
>
>> Walter suggested, in the D2 presentation at the conference in 2007,
>> that there should be "static" parameters which would work the way your
>> code should work.
> good idea IMO.

I've just think that, since templated methods don't treat with respect  
rules of object inheritance, this could be a cause of mistakes...


More information about the Digitalmars-d-learn mailing list