import std.string; import std.stdio; enum Foo { foo, bar } void main() { Foo foo; writefln("%s", foo); writeln(format("%s", foo)); } Prints: foo 0 I really think these two should be in sync with each other. It's hard to switch from writef debugging to log-based debugging when writef does one thing and format() does another.
See also issue 7571
*** This issue has been marked as a duplicate of issue 4532 ***