On Tuesday, 27 November 2012 at 07:28:34 UTC, Jacob Carlborg wrote:
On 2012-11-27 06:03, dsmith wrote:
How can I make something like the following work without "Error: cannot
append type double to type string[]" ?


T[] some_function(T[] var) {
 T[] var2;
 double a = 12.34;
 string b = "hello";

 if(typeof(var).stringof == "double") {
   var2 ~= a;
 }
 if(typeof(var).stringof == "string") {
   var2 ~= b;
 }

...
}

Use static-if, but you shouldn't use .stringof. Check the actual type and not the string of the type:

static if(is(typeof(var) == double)) {
    var2 ~= a;
}

static if(is(typeof(var) == string)) {
    var2 ~= b;
}

Oh, the "static if" ... for compile time evaluation; seems unintuitive (no?) since data is encountered at run time.

Reply via email to