Can we check the arguments to format() at compile time?

Johan Engelen via Digitalmars-d digitalmars-d at puremagic.com
Sat Apr 2 07:51:45 PDT 2016


On Friday, 1 April 2016 at 21:25:46 UTC, Yuxuan Shui wrote:
> Clang has this nice feature that it will warn you when you 
> passed wrong arguments to printf:
>
> #include <stdio.h>
> int main(){
> 	long long u = 10;
> 	printf("%c", u);
> }
>
> clang something.c:
> something.c:4:15: warning: format specifies type 'int' but the 
> argument has type 'long long' [-Wformat]
>
> With the CTFE power of D, we should be able to do the same 
> thing when the format string is available at compile time. 
> Instead of throwing exceptions at run time.

I thought LDC already did that when `-check-printf-calls` is 
passed, but the implementation is unfinished and it does not do 
any checking at the moment.


More information about the Digitalmars-d mailing list