"enough"? I don't know, how it works internally, but if one wants me to write something like this, I would let `sprintf()` call `vsprintf()`.

I've chosen `vsprintf()` primary because of the more obvious separation between template and arguments, but at the end no deeper preference.