www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 10407] New: std.conv.to of lazy range to numbers array

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

           Summary: std.conv.to of lazy range to numbers array
           Product: D
           Version: D2
          Platform: x86
        OS/Version: Windows
            Status: NEW
          Keywords: rejects-valid
          Severity: normal
          Priority: P2
         Component: Phobos
        AssignedTo: nobody puremagic.com
        ReportedBy: bearophile_hugs eml.cc


--- Comment #0 from bearophile_hugs eml.cc 2013-06-18 10:47:23 PDT ---
import std.regex: splitter, regex;
import std.conv: to;
import std.array: array;
void main() {
    auto s = splitter("10 30 20", r"[\s,]+".regex);
    auto r1 = s.array.to!(real[]); // OK
    auto r2 = s.to!(real[]); // Error
}


DMD 2.063.2 gives:

...\dmd2\src\phobos\std\conv.d(276): Error: template std.conv.toImpl does not
match any function template declaration. Candidates are:
...\dmd2\src\phobos\std\conv.d(332):        std.conv.toImpl(T, S)(S value) if
(isImplicitlyConvertible!(S, T) && !isEnumStrToStr!(S, T) && !isNullToStr!(S,
T))
...\dmd2\src\phobos\std\conv.d(445):        std.conv.toImpl(T, S)(ref S s) if
(isRawStaticArray!S)
...\dmd2\src\phobos\std\conv.d(461):        std.conv.toImpl(T, S)(S value) if
(is(typeof(S.init.opCast!T()) : T) && !isExactSomeString!T)
...\dmd2\src\phobos\std\conv.d(492):        std.conv.toImpl(T, S)(S value) if
(!isImplicitlyConvertible!(S, T) && is(T == struct) && is(typeof(T(value))))
...\dmd2\src\phobos\std\conv.d(542):        std.conv.toImpl(T, S)(S value) if
(!isImplicitlyConvertible!(S, T) && is(T == class) && is(typeof(new T(value))))
...\dmd2\src\phobos\std\conv.d(276):        ... (16 more, -v to show) ...
...\dmd2\src\phobos\std\conv.d(332): Error: template std.conv.toImpl cannot
deduce template function from argument types !(real[])(Splitter!(string,
Regex!char))
...\dmd2\src\phobos\std\conv.d(276): Error: template instance toImpl!(real[])
errors instantiating template
test.d(7): Error: template instance std.conv.to!(real[]).to!(Splitter!(string,
Regex!char)) error instantiating

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