If statements and unused template parameters in Phobos documentation

Max Haughton maxhaton at gmail.com
Sun Dec 20 13:58:00 UTC 2020


On Sunday, 20 December 2020 at 13:51:08 UTC, Rekel wrote:
> I found a lot of the Phobos documentation to contain template 
> arguments and if statements that made no sense to me, for 
> example:
>
> ```
>  uint readf(alias format, A...) (
>  auto ref A args
> )
> if (isSomeString!(typeof(format)));
>
> uint readf(A...) (
>  scope const(char)[] format,
>  auto ref A args
> );
> ``` https://dlang.org/library/std/stdio/file.readf.html
>
> From stdio.readf & stdio.File.readf. I'm assuming this is some 
> kind of template, but often it seems there are more parameters 
> in the first '()' part than are ever given. Am I missing 
> something? Additionally, what is that if statement for? It 
> precedes nothing.

The if is a template constraint.


More information about the Digitalmars-d-learn mailing list