Should I stop being interested in D language if I don't like to see template instantiation in my code?

user9876 user9876 at countdown.cd
Thu Nov 14 09:30:23 UTC 2019


On Wednesday, 13 November 2019 at 14:01:13 UTC, BoQsc wrote:
> I don't like to see exclamation marks in my code in as weird 
> syntax as these ones:
>> to!ushort(args[1])
>> s.formattedRead!"%s!%s:%s"(a, b, c);
>
> I'm not sure why, but template instantiation syntax is 
> prevalent in the documentation examples of d lang libraries. It 
> almost seems like every other example contains at least one or 
> two  of them.
>
> It look horrible, and I'm feeling like I'm being forced/coerced 
> to learn from examples that do not provide alternatives to the 
> template instantiation syntax. Even if the alternative examples 
> were provided, why would anyone want to have syntax as ugly and 
> weird as current template instantiation syntax with exclamation 
> point in the middle of the statement with all other things that 
> come with it.

A good thing is that in many cases the template instance 
parameters can be deduced from the arguments used:

---
import std;

void main()
{
     assert(max(0,1) == 1);
     // same as assert(max!(int,int)(0,1) == 1);
}
---

This feature is known as "IFTI" see §6, 
https://dlang.org/spec/template.html#function-templates.

You're not forced to use the D templates but you'll have to write 
many code by yourself because the standard library use them 
everywhere.


More information about the Digitalmars-d-learn mailing list