I see, I've never had to use that one before. Without that requirement a simple off-the-mill implementation could be:

```D
import std.string;
import std.traits;

string pairFormat(Args...)(Args args)
{
    Appender!string result;
    static assert(!(Args.length % 2), "arguments must come in pairs");

    foreach (i, arg; args)
    {
        static if (!(i % 2))
        {
            static assert(isSomeString!(typeof(arg)));
            // enforce(isFormatSpec(arg));  // does not exist
            result ~= format(arg, args[i+1]);
        }
    }

    return result.data;
}
```

Anyway we've kind of hijacked the topic here. :)