Re: static if (is (T==Complex))

2019-09-18 Thread Steven Schveighoffer via Digitalmars-d-learn

On 9/18/19 7:10 AM, berni wrote:

Is it possible to simplfy this?

static if (is (T==Complex!double) || is (T==Complex!float) || is 
(T==Complex!real))


https://dlang.org/phobos/std_traits.html#TemplateOf

import std.traits : TemplateOf;

static if(__traits(isSame, TemplateOf!T, Complex))

-Steve


Re: static if (is (T==Complex))

2019-09-18 Thread berni via Digitalmars-d-learn

On Wednesday, 18 September 2019 at 11:25:21 UTC, Norm wrote:

I usually do something like the following:


Ah great. I was looking for "is(T == Complex!R, R)". :-) Thanks!


Re: static if (is (T==Complex))

2019-09-18 Thread Norm via Digitalmars-d-learn

On Wednesday, 18 September 2019 at 11:10:11 UTC, berni wrote:

Is it possible to simplfy this?

static if (is (T==Complex!double) || is (T==Complex!float) || 
is (T==Complex!real))


I usually do something like the following:
---
import std.traits;


template isComplexReal(T) {

  enum isComplexReal = is(T == Complex!R, R) && 
(isFloatingPoint!R);

}


static if(isComplexReal!T) {// do something}
---


static if (is (T==Complex))

2019-09-18 Thread berni via Digitalmars-d-learn

Is it possible to simplfy this?

static if (is (T==Complex!double) || is (T==Complex!float) || is 
(T==Complex!real))