www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 3437] New: No way to make conversions to string in pure functions.

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

           Summary: No way to make conversions to string in pure
                    functions.
           Product: D
           Version: 2.035
          Platform: Other
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: nobody puremagic.com
        ReportedBy: alvcastro yahoo.es


--- Comment #0 from Alvaro <alvcastro yahoo.es> 2009-10-22 17:30:11 PDT ---
This code can't compile:

{{{

import std.conv;                                                                

pure string genCode(int num) {
    string result = "auto a = " ~ to!(string)(num) ~ ";";
    return result;
}

void main() {
    mixin( genCode(1) );    
}


}}}


If you want to generate the body of a pure function with any numerical
parameter from outside, there is no way to do it.

toStringNow! doesn't help here either.

Purity should be checked after the CTFE functions have been executed.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Oct 22 2009
parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=3437


Don <clugdbug yahoo.com.au> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |clugdbug yahoo.com.au
          Component|DMD                         |Phobos


--- Comment #1 from Don <clugdbug yahoo.com.au> 2010-02-26 08:14:56 PST ---
This is a Phobos issue. It's just because the to!() functions are not marked as
pure. Also the CTFE support for to!() functions is still limited.

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