http://d.puremagic.com/issues/show_bug.cgi?id=6808

           Summary: string to BigInt using std.conv.to
           Product: D
           Version: D2
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: enhancement
          Priority: P2
         Component: Phobos
        AssignedTo: nob...@puremagic.com
        ReportedBy: bearophile_h...@eml.cc


--- Comment #0 from bearophile_h...@eml.cc 2011-10-12 16:18:01 PDT ---
For generic code, and to run functions with both integers and bigintegers, I'd
like to use bigintegers in many of the situations where I use ints (I don't
expect to use bigintegers everywhere, like as array indexes).

The BigInt struct allows the conversion of a string to a BigInt, but you have
to use a specific syntax for that:


import std.conv, std.bigint;
void main() {
    string s = "101";
    auto i1 = to!int(s); // OK
    auto i2 = BigInt(s); // OK
}



So if possible I'd like to use the normal to! syntax to convert a string to
BigInt:

import std.conv, std.bigint;
void main() {
    string s = "101";
    auto i3 = to!BigInt(s); // Error
}


Is this possible?


With DMD 2.056head the second program gives:

...dmd2\src\phobos\std\conv.d(227): Error: template std.conv.toImpl(T,S) if
(isImplicitlyConvertible!(S,T)) toImpl(T,S) if (isImplicitlyConvertible!(S,T))
matches more than one template declaration,
...dmd2\src\phobos\std\conv.d(434):toImpl(T,S) if
(!isImplicitlyConvertible!(S,T) && is(T == struct) && is(typeof(T(src)))) and
...dmd2\src\phobos\std\conv.d(1726):toImpl(T,S) if (isDynamicArray!(S) &&
isSomeString!(S) && !isSomeString!(T))

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------

Reply via email to