bearophile Wrote:
> The difference is that a well designed isNumeric doesn't need to use
> exceptions,<
A possible design is to use only one template function, like:
private auto _realConvert(bool useExepions)(string txt) {
...
if (some_error_condition) {
static if (useExcepions)
throw new ConversionError(...);
else
return false;
}
...
static if (useExcepions)
return result;
else
return true;
}
And then create isNumeric() and to!real() calling _realConvert!(false) and
_realConvert!(true).
(But maybe the simple implementation with collectException(to!real(input)) is
enough because it's uncommon to use isNumeric where speed matters a lot).
Bye,
bearophile