Given this code for CTFE on a string array:

enum E {one, two}
enum string[] fields = [EnumMembers!E].to!(string[]);

string print(string[] fields)
{
    string s;
    foreach(string field; fields)
    {
        s ~= field.toUpper ~ ", ";
    }
    return s;
}

pragma(msg, print(["one", "two"]));
pragma(msg, print(fields));

I am trying to understand why the first pragma produces correct output but the second one fails in std.string.toUpper (cannot interpret result ~= c at compile-time)?

Reply via email to