std.conv.parse  - multiple declarations
				Function parse
The parse family of functions works quite like the to
family, except that:
- It only works with character ranges as input.
- It takes the input by reference. (This means that rvalues - such
    as string literals - are not accepted: use toinstead.)
- It advances the input to the position following the conversion.
- It does not throw if it could not convert the entire input.
						
				Target parse(Target, Source)
				(
				
				  ref Source source
				
				)
				
				if (isInputRange!Source && isSomeChar!(ElementType!Source) && is(Unqual!Target == bool));
						
					
				This overload converts a character input range to a bool.
Parameters
| Name | Description | 
|---|---|
| Target | the type to convert to | 
| source | the lvalue of an input range | 
Returns
A bool
Throws
A ConvException if the range does not represent a bool.
Note
All character input range conversions using to are forwarded
    to parse and do not require lvalues.
Example
auto s = "true";
bool b = parse!bool(s);
assert(b);
Function parse
Parses a character input range to an integral value.
						
				Target parse(Target, Source)
				(
				
				  ref Source s
				
				)
				
				if (isSomeChar!(ElementType!Source) && isIntegral!Target && !is(Target == enum));
				
				
				Target parse(Target, Source)
				(
				
				  ref Source source,
				
				  uint radix
				
				)
				
				if (isSomeChar!(ElementType!Source) && isIntegral!Target && !is(Target == enum));
						
					
				Parameters
| Name | Description | 
|---|---|
| Target | the integral type to convert to | 
| s | the lvalue of an input range | 
Returns
A number of type Target
Throws
A ConvException If an overflow occurred during conversion or
    if no character of the input was meaningfully converted.
Example
string s = "123";
auto a = parse!int(s);
writeln(a); // 123
// parse only accepts lvalues
static assert(!__traits(compiles, parse!int("123")));
Example
import stdFunction parse
Takes a string representing an enum type and returns that type.
						
				Target parse(Target, Source)
				(
				
				  ref Source s
				
				)
				
				if (isSomeString!Source && !is(Source == enum) && is(Target == enum));
						
					
				Parameters
| Name | Description | 
|---|---|
| Target | the enumtype to convert to | 
| s | the lvalue of the range to parse | 
Returns
An enum of type Target
Throws
A ConvException if type Target does not have a member
     represented by s.
Example
enum EnumType : bool { a = true, b = false, c = a }
auto str = "a";
writeln(parse!EnumType(str)); // EnumType.a
Function parse
Parses a character range to a floating point number.
						
				Target parse(Target, Source)
				(
				
				  ref Source source
				
				)
				
				if (isInputRange!Source && isSomeChar!(ElementType!Source) && !is(Source == enum) && isFloatingPoint!Target && !is(Target == enum));
						
					
				Parameters
| Name | Description | 
|---|---|
| Target | a floating point type | 
| source | the lvalue of the range to parse | 
Returns
A floating point number of type Target
Throws
A ConvException if source is empty, if no number could be
     parsed, or if an overflow occurred.
Example
import stdFunction parse
Parsing one character off a range returns the first element and calls popFront.
						
				Target parse(Target, Source)
				(
				
				  ref Source s
				
				)
				
				if (isSomeString!Source && !is(Source == enum) && (staticIndexOf!(Unqual!Target, dchar, Unqual!(ElementEncodingType!Source)) >= 0));
				
				
				Target parse(Target, Source)
				(
				
				  ref Source s
				
				)
				
				if (!isSomeString!Source && isInputRange!Source && isSomeChar!(ElementType!Source) && isSomeChar!Target && (Target
				Parameters
| Name | Description | 
|---|---|
| Target | the type to convert to | 
| s | the lvalue of an input range | 
Returns
A character of type Target
Throws
A ConvException if the range is empty.
Example
auto s = "Hello, World!";
char first = parse!char(s);
writeln(first); // 'H'
writeln(s); // "ello, World!"
Function parse
Parsing a character range to typeof(null) returns null if the range
spells "null". This function is case insensitive.
						
				Target parse(Target, Source)
				(
				
				  ref Source s
				
				)
				
				if (isInputRange!Source && isSomeChar!(ElementType!Source) && is(Unqual!Target == typeof(null)));
						
					
				Parameters
| Name | Description | 
|---|---|
| Target | the type to convert to | 
| s | the lvalue of an input range | 
Returns
null
Throws
A ConvException if the range doesn't represent null.
Example
import stdFunction parse
Parses an array from a string given the left bracket (default  '['), right bracket (default ']'), and element separator (by
 default ','). A trailing separator is allowed.
						
				Target parse(Target, Source)
				(
				
				  ref Source s,
				
				  dchar lbracket = '[',
				
				  dchar rbracket = ']',
				
				  dchar comma = ','
				
				)
				
				if (isSomeString!Source && !is(Source == enum) && isDynamicArray!Target && !is(Target == enum));
				
				
				Target parse(Target, Source)
				(
				
				  ref Source s,
				
				  dchar lbracket = '[',
				
				  dchar rbracket = ']',
				
				  dchar comma = ','
				
				)
				
				if (isExactSomeString!Source && isStaticArray!Target && !is(Target == enum));
						
					
				Parameters
| Name | Description | 
|---|---|
| s | The string to parse | 
| lbracket | the character that starts the array | 
| rbracket | the character that ends the array | 
| comma | the character that separates the elements of the array | 
Returns
An array of type Target
Example
auto s1 = `[['h', 'e', 'l', 'l', 'o'], "world"]`;
auto a1 = parse!(string[])(s1);
writeln(a1); // ["hello", "world"]
auto s2 = `["aaa", "bbb", "ccc"]`;
auto a2 = parse!(string[])(s2);
writeln(a2); // ["aaa", "bbb", "ccc"]
Function parse
Parses an associative array from a string given the left bracket (default  '['), right bracket (default ']'), key-value separator (default  ':'), and element seprator (by default ',').
						
				Target parse(Target, Source)
				(
				
				  ref Source s,
				
				  dchar lbracket = '[',
				
				  dchar rbracket = ']',
				
				  dchar keyval = ':',
				
				  dchar comma = ','
				
				)
				
				if (isSomeString!Source && !is(Source == enum) && isAssociativeArray!Target && !is(Target == enum));
						
					
				Parameters
| Name | Description | 
|---|---|
| s | the string to parse | 
| lbracket | the character that starts the associative array | 
| rbracket | the character that ends the associative array | 
| keyval | the character that associates the key with the value | 
| comma | the character that separates the elements of the associative array | 
Returns
An associative array of type Target
Example
auto s1 = "[1:10, 2:20, 3:30]";
auto aa1 = parse!(int[int])(s1);
writeln(aa1); // [1:10, 2:20, 3:30]
auto s2 = `["aaa":10, "bbb":20, "ccc":30]`;
auto aa2 = parse!(int[string])(s2);
writeln(aa2); // ["aaa":10, "bbb":20, "ccc":30]
auto s3 = `["aaa":[1], "bbb":[2,3], "ccc":[4,5,6]]`;
auto aa3 = parse!(int[][string])(s3);
writeln(aa3); // ["aaa":[1], "bbb":[2, 3], "ccc":[4, 5, 6]]
Authors
Walter Bright, Andrei Alexandrescu, Shin Fujishiro, Adam D. Ruppe, Kenji Hara