@Krux02 "This is so bad that several bigger c++ projects completely abandoned templates. " ... is still not backed by even one example.
You gave pointers to _Templates are very useful but are advanced and should not be overused_ (google) and _I personally don't like templates, but it is fine if you can handle them_ (C. Muratori). Of course templates make stuff more complex and can harm if you use them wrong or overuse them in general. Thats merely true for everything though as Paracelsus pointed out a long time ago. Then you imply that the reason why c++ templates are "bad" they also "may" make Nims generics bad too. Something which you didn't experienced yourself (yet) and nobody else did afaik. At the same time you promote a feature which could be seen much as a "patch" for the missing generics in Go. In fact I remember that I read complaints about Go not having a real generics implementation and have to copy code eventually even with interfaces and delegates at hand. Then you prove (in my eyes) how ugly and cumbersome it is in the "black box cast ptr macros" implementation you gave, while later you discard a real elegant "see everything" functional approach to the problem as "cheating". You write: "I just don't like implicit conversions, I think they are scary, because they hide procedure calls from the code reader, and could therefore decrease code maintainability." but isn't this exactly what Go is doing in its implementation? Interfaces may be the best and elegant solution for Go programmers. But I think that I would like to trade them for real generics and templates (which I actually did).