On Saturday, 28 October 2017 at 02:38:43 UTC, Shriramana Sharma
wrote:
if (is(typeof(arg) == string) && arg.length > 1)
I am not sure why, given short circuit evaluation, it is
testing the length of the int argument?
That's a runtime check and therefore the code must run to be
short circuited at all... which means it must compile the whole
thing first.
Break the is() part into a separate static if, then put the
runtime length check inside that. More like
static if(is(typeof(arg) == string)) {
if(arg.length > 1)
// handle
else
// string of short length
} else {
// not a string
}