[Issue 1884] New: manifest constants for strings

d-bugmail at puremagic.com d-bugmail at puremagic.com
Fri Feb 29 18:39:23 PST 2008


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

           Summary: manifest constants for strings
           Product: D
           Version: 2.011
          Platform: PC
        OS/Version: Windows
            Status: NEW
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: bugzilla at digitalmars.com
        ReportedBy: ddparnell at bigpond.com


The code below does not work as I expected it to.

//-----------------
import std.stdio;

void main()
{
    enum string foo = "qwerty";
    std.stdio.writefln("'%s'", foo);    
    foreach(int i, char c; foo)
        writefln("[%s]%s", i, cast(int)c);

    enum fob = "qwerty";
    std.stdio.writefln("'%s'", fob);    
    foreach(int i, char c; fob)
        writefln("[%s]%s", i, cast(int)c);

    const bar = "qwerty";            
    std.stdio.writefln("'%s'", bar);    
    foreach(int i, char c; bar)
        writefln("[%s]%s", i, cast(int)c);
}
//-----------------

I was expecting three identical strings to printout plus each character to be
correct. Instead I got this ...

'qwerty'
[0]176
[1]236
[2]65
'    ÿý'
[0]0
[1]0
[2]0
[3]0
[4]152
[5]236
'qwerty'
[0]113
[1]119
[2]101
[3]114
[4]116
[5]121

Which seems to me that only the form "const x " works.


-- 



More information about the Digitalmars-d-bugs mailing list