On Wednesday, 4 November 2015 at 10:37:54 UTC, Atila Neves wrote:
On Tuesday, 3 November 2015 at 10:08:04 UTC, Jonathan M Davis wrote:
On Tuesday, 3 November 2015 at 08:37:22 UTC, Atila Neves wrote:
Am I the only one who ever writes `int[]` or `Struct[]` in a function signature?

Probably not, but I write very little code that operates on arrays rather than ranges. If I do, it's usually in a short program or script where I'm doing something that I don't intend to ever reuse, and there's no point in making it generic.

- Jonathan M Davis

I'd _like_ to write functions that take ranges instead; that's why I want to make it easier to declare "this parameter is an input range of T".

I confess that I don't find is(ElementType!E == Foo) to be particularly onerous. If that's what I need, then I do it and move on. It takes less time to write than this post, and it's not that uncommon that far more complicated conditions are required for template constraints anyway.

So, while I can understand why you'd want it to be simpler, it really doesn't seem like a big deal to me. And for that matter, if you really do want it to be simpler, there's nothing stopping you from creating your own traits to test with rather than just those in Phobos. It just means that it's not something that's going to be commonly used.

IMHO, if anything is annoying about writing template constraints, it's dealing with several overloads, since that frequently requires that you essentially put the negation of each overload in the other overloads.

- Jonathan M Davis

Reply via email to