digitalmars.D.learn - If statements and unused template parameters in Phobos documentation
- Rekel (16/16) Dec 20 2020 I found a lot of the Phobos documentation to contain template
- Max Haughton (2/20) Dec 20 2020 The if is a template constraint.
- Rekel (4/5) Dec 20 2020 Ah sorry! I must have missed that part of the dlang tour.
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.
Dec 20 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.
Dec 20 2020
On Sunday, 20 December 2020 at 13:58:00 UTC, Max Haughton wrote:The if is a template constraint.Ah sorry! I must have missed that part of the dlang tour. (https://tour.dlang.org/tour/en/gems/template-meta-programming) Thanks a lot!
Dec 20 2020