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

Reply via email to