On Wednesday, 15 May 2019 at 22:03:39 UTC, Ferhat Kurtulmuş wrote:
Hi,
Maybe I already know the answer, but have to be sure about
this. I am emulating this cpp code "int val = mat.at<int>(row,
col)" like:
T at(T)(int row, int col){
static if (T.stringof == "float"){
return getFloatAt(row, col);
} else static if (T.stringof == "double"){
return getDoubleAt(row, col);
} else static if (T.stringof == "int"){
return getIntAt(row, col);
} else static if (T.stringof == "ubyte"){
return getUCharAt(row, col);
} else static if (T.stringof == "byte"){
return getSCharAt(row, col);
} else static if (T.stringof == "short"){
return getShortAt(row, col);
}
}
This works as expected, and I know conditions of "static if" is
determined at compile time and I assume no speed penalty here?
You've been given the answer but about this particular piece of
code, rather use the "is" expression
static if (is(T == float)) {}
else static if (is(T == double)) {}
etc.