parseDigits

Convert string to integer.

@safe pure @nogc nothrow
bool
parseDigits
(
T
)
(
ref T val
,
const(char)[] p
,
const T max = T.max
)

Parameters

T

Type of integer to parse

val
Type: T

Variable to store the result in

p
Type: const(char)[]

slice to start of string digits

max
Type: T

max allowable value (inclusive), defaults to T.max

Return Value

Type: bool

false on error, true on success

Examples

1 byte b;
2 ubyte ub;
3 short s;
4 ushort us;
5 int i;
6 uint ui;
7 long l;
8 ulong ul;
9 
10 assert(b.parseDigits("42") && b  == 42);
11 assert(ub.parseDigits("42") && ub == 42);
12 
13 assert(s.parseDigits("420") && s  == 420);
14 assert(us.parseDigits("42000") && us == 42_000);
15 
16 assert(i.parseDigits("420000") && i  == 420_000);
17 assert(ui.parseDigits("420000") && ui == 420_000);
18 
19 assert(l.parseDigits("42000000000") && l  == 42_000_000_000);
20 assert(ul.parseDigits("82000000000") && ul == 82_000_000_000);
21 
22 assert(!b.parseDigits(ubyte.max.stringof));
23 assert(!b.parseDigits("WYSIWYG"));
24 assert(!b.parseDigits("-42"));
25 assert(!b.parseDigits("200"));
26 assert(ub.parseDigits("200") && ub == 200);
27 assert(i.parseDigits(int.max.stringof) && i == int.max);
28 assert(i.parseDigits("420", 500) && i == 420);
29 assert(!i.parseDigits("420", 400));

Meta