www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 7905] New: std.conv.parse doesn't work with UFCS

reply d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=7905

           Summary: std.conv.parse doesn't work with UFCS
           Product: D
           Version: D2
          Platform: x86_64
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: nobody puremagic.com
        ReportedBy: witte2008 gmail.com



---
import std.stdio, std.conv;

    void main() {
      // Error: template std.conv.parse does not match
      //  any function declaration

      // Error: template std.conv.parse cannot deduce
      //  function from argument types !(uint)(string)

      writeln("123".parse!uint());


      // However, this works:

      string text = "123";
      writeln(text.parse!uint()); // prints "123"
    }


Also this works:

    auto test(T, U)(U text) {
      return text.parse!T();
    }

    void main() {
      writeln("123".test!uint()); // prints "123"
    }

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Apr 13 2012
next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=7905




std.conv.parse function receives the processed string with ref, and returns the
remains through it.

string input = "123abc";
int num = parse!int(input);
assert(num == 123);
assert(input == "abc");

So this is a Phobos issue, and expected behavior.
"123".parse!int() never works with current Phobos.

You can use std.conv.to!int("123") instead. It calls std.conv.parse and checks
there is no remains.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Apr 13 2012
prev sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=7905


Jonathan M Davis <jmdavisProg gmx.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
                 CC|                            |jmdavisProg gmx.com
         Resolution|                            |INVALID


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