If its a string literal it is already handled as part of bindings: https://dlang.org/spec/pragma.html#printf I understand that you may be wanting a runtime error, but I'd suggest disallowing that entirely and go with a template parameter to provide your format to make sure its seeable to the compiler.