xxxxxxxxxx
import std.format : format;
/// Format pattern string passed at compile-time
auto format2(string fmt, Args...)(Args args)
{
return format!fmt(args);
}
/// Format pattern and extra prefix string passed at compile-time
auto format2(string prefix, string fmt, Args...)(Args args)
{
// Modify the format string as you please
enum prefixedFmt = prefix ~ fmt;
return format!prefixedFmt(args);
}
/// Normal runtime format
auto format2(Args...)(Args args)
{
return format(args);
}
void main()
{
assert(format2!"%s %d %s"("bar", 456, false) == "bar 456 false"); // overload 1
assert(format2!("%d:", "%s %d")(789, "baz", 901) == "789:baz 901"); // overload 2
assert(format2("%s %d %s", "foo", 123, true) == "foo 123 true"); // overload 3
}