Testing if a function is defined in a module
    Tyler Knott 
    tywebmail at mailcity.com
       
    Tue Feb 20 22:53:46 PST 2007
    
    
  
Kirk McDonald wrote:
> Carlos Smith wrote:
>> Hi!
>>
>> say i have defined a function (or i dont):
>>
>> int YYUSERINIT( )
>> {
>>    ...
>> }
>>
>>
>> How can i test (statically), later in the module
>> if that function have been defined ?
>>
>> if yes, code using the function will
>> be compiled.
>>
>> Thanks
>>
>>
> 
> There are a few ways of phrasing this, but here's one:
> 
> static if (is(typeof(&YYUSERINIT))) {
>     // Do stuff with the function
> }
> 
> 
Thanks for the solution.  I was grappling with a similar problem myself.  Would 
you mind explaining why this works?  I'm a bit fuzzy on IsExpression syntax. 
I'm guessing it's because you can't take the type of an undeclared symbol, 
making the Type invalid and the IsExpression return 0, correct?
    
    
More information about the Digitalmars-d-learn
mailing list