On Thu, Aug 30, 2012 at 2:13 AM, cal <callumena...@gmail.com> wrote: > 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)? >
And with no UFCS ? Did you try s ~= toUpper(field) ~ ", ";