using parse with string slice
anonymous via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Sat Dec 5 14:05:11 PST 2015
On 05.12.2015 22:59, Quentin Ladeveze wrote:
> ---
> import std.conv;
>
> string s = "1B2A";
>
> int value = parse!int(s[0..2], 16); //template std.conv.parse cannot
> deduce function from argument types !(int)(string, int)
> ---
>
> Does someone have an idea of why it happens ? The version of parse that
> is used here is :
>
> ---
> std.conv.parse(Target, Source)(ref Source s, uint radix) if
> (isSomeChar!(ElementType!Source) && isIntegral!Target && !is(Target ==
> enum))
> ---
>
> And I can't see which template constraint is not respected when I call
> it with a slice.
It's the `ref` part. A slice expression cannot be passed in a ref
parameter. You can use std.conv.to instead or assign the slice to a
variable first.
More information about the Digitalmars-d-learn
mailing list