[Issue 5543] to!int to see a char as a single-char string
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Fri Dec 21 10:55:25 PST 2012
http://d.puremagic.com/issues/show_bug.cgi?id=5543
--- Comment #20 from monarchdodra at gmail.com 2012-12-21 10:55:24 PST ---
(In reply to comment #18)
> (In reply to comment #16)
>
> > Whereas if it threw to begin with you're forced to catch exceptions.
>
> There is no perfect solution. Exceptions are safer than error codes because if
> you forget to test for a negative result, your program stops. On the other hand
> exceptions are less efficient, less handy to use in nothrow functions, and
> often require some try-catch wrapping.
>
> In this enhancement request I was originally asking for an overload of to!(),
> this means a solution that throws exceptions when the input is wrong.
>
> Efficiency is not a significant problem for me here because where I need to
> convert char digits to numerical digits with max efficientcy I use a '0'
> subtraction (or a vectorized version of it). So with this overload of to!() I
> was looking for safety.
I think a good solution is to accept having different semantics:
std.ascii.numericValue:
int numericValue(dchar c) safe nothrow pure; returns -1 on failure
std.uni.numericValue:
double numericValue(dchar c) safe pure; Throws on failure
If you are doing anything with unicode, the exception's overhead will be mostly
moot compared to the cost (I think). When operating with ASCII, then it's a
different ballgame (IMO).
That's my opinion anyways.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
More information about the Digitalmars-d-bugs
mailing list