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)?