Thread overview
Q: Determining array type
May 18, 2007
Myron Alexander
May 18, 2007
Downs
May 19, 2007
Myron Alexander
May 18, 2007
Hello.

How do you determine if a type is an array? I saw the hack in std.boxer but was wondering if there is a language standard / better way.

Regards,

Myron.
May 18, 2007
Myron Alexander wrote:
> Hello.
> 
> How do you determine if a type is an array? I saw the hack in std.boxer but was wondering if there is a language standard / better way.
> 
> Regards,
> 
> Myron.

Here's what I would do.
template isArray(T) { const isArray=false; }
template isArray(T: T[]) { const isArray=true; }

Beware though, this was not extensively tested. From what I can see, it _should_ work, and also does in simple test cases, but that's no guarantee.

Use it like "[static] if (isArray!(Type)) { do stuff here } "
May 19, 2007
Downs wrote:
> Myron Alexander wrote:
>> Hello.
>>
>> How do you determine if a type is an array? I saw the hack in std.boxer but was wondering if there is a language standard / better way.
>>
>> Regards,
>>
>> Myron.
> 
> Here's what I would do.
> template isArray(T) { const isArray=false; }
> template isArray(T: T[]) { const isArray=true; }
> 
> Beware though, this was not extensively tested. From what I can see, it _should_ work, and also does in simple test cases, but that's no guarantee.
> 
> Use it like "[static] if (isArray!(Type)) { do stuff here } "

Thanks, rather ingenious.