writef %d of string

bearophile bearophileHUGS at lycos.com
Sun Dec 4 18:52:31 PST 2011

Stewart Gordon:

> You mean all programming languages should support CTFE for argument validation?

This is not necessary, and it's not sufficient...

> What if the format string isn't even known at compile time in the first place?

In this case the format string validation is done at run-time. It's opportunistic static typing. And it's better than leaving all the tests at run-time. In a dynamically typed language I accept format strings to be verified at run-time. In a compiled language I want some of advantages of static typing, where possible.

> http://www.acronymfinder.com/ is your friend.

Or even better, reduce the usage of uncommon acronyms in normal communications :-)

> I meant rare among the world's various C compilers.  Are you going by usage statistics?

In the end D wants to be better than C and C compilers.

> What do you mean by a "built-in rule" exactly?

In GCC there is a hard-coded routine that tests (or tries to) the correctness of format strings known at compile-time.

> Maybe there's a way that the template instances can be very small, delegating most of the 
> work to non-templated functions.

This is easy to do, just call the same runtime function after the compile-time test done in the template :-) But DMD probably has to learn to better remove unnecessary template instances from the resulting binary. Walter has discussed this topic a bit several times.


More information about the Digitalmars-d-learn mailing list