Thread overview
Detect if variable defined
Sep 29, 2017
Joseph
Sep 29, 2017
arturg
September 29, 2017
static if ()
{
 enum x;
}

static if (isDefined!x)
{
}

What's the correct way to check if a variable has been defined? (note x may or may not be defined above. I need to know if it is)
September 29, 2017
On Friday, 29 September 2017 at 18:03:52 UTC, Joseph wrote:
> static if ()
> {
>  enum x;
> }
>
> static if (isDefined!x)
> {
> }
>
> What's the correct way to check if a variable has been defined? (note x may or may not be defined above. I need to know if it is)

import std.traits;
static if(hasMember!(T, "x"))
{
}

or if at module level

static if(__traits(hasMember, mixin(__MODULE__), "x"))
{
}
September 29, 2017
On 9/29/17 2:03 PM, Joseph wrote:
> static if ()
> {
>   enum x;
> }
> 
> static if (isDefined!x)
> {
> }
> 
> What's the correct way to check if a variable has been defined? (note x may or may not be defined above. I need to know if it is)

Check to see that it has a type:

static if(is(typeof(x)))
{
}

-Steve