Converting a number to complex

Joshua Niehus jm.niehus at gmail.com
Fri Nov 23 09:06:02 PST 2012


meh, couldn't resist:

import std.stdio, std.conv, std.traits, std.complex;
template isComplex(T)
{
     static if (is(T == Complex!double))
     {
         enum bool isComplex = true;
     }
     else static if (is(T == Complex!float))
     {
         enum bool isComplex = true;
     }
     else static if (is(T == Complex!real))
     {
         enum bool isComplex = true;
     }
     else {
         enum bool isComplex = false;
     }
}

template isComplexOrNumeric(T)
{
     enum bool isComplexOrNumeric = (isComplex!T || isNumeric!T);
}

class Example(T) if (isComplexOrNumeric!T)
{
     T k = to!T(1);
}



More information about the Digitalmars-d-learn mailing list