using parse with string slice

Quentin Ladeveze via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sat Dec 5 13:59:26 PST 2015


Hi,

I try to parse some hexadecimal numbers stocked in a string. So I 
use this code


---
import std.conv;

string s = "B";

int value = parse!int(s, 16);

assert(value == 11);
---

But when I have several hexadecimal numbers in the string, and I 
slice it, the compiler can't deduce which version of parse to use 
:

---
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.

Thanks


More information about the Digitalmars-d-learn mailing list