D's greatest mistakes
Andrej Mitrovic
andrej.mitrovich at gmail.com
Mon Nov 29 04:32:17 PST 2010
Sorry for the repost!
On 11/29/10, Andrej Mitrovic <andrej.mitrovich at gmail.com> wrote:
> On 11/29/10, bearophile <bearophileHUGS at lycos.com> wrote:
>>> * Template pattern matching is incomplete
>>
>> I don't understand this, please explain better. But I think the syntax of
>> is() is awful and I'd like to shoot it.
>>
>
> +1. I'd prefer if we had a constraint block of some kind. I mean we
> already have in/out contracts which look very nice:
>
> void somefunc()
> in
> {
> // ...contract preconditions...
> }
> out (result)
> {
> // ...contract postconditions...
> }
> body
> {
> // ...code...
> }
>
> Why not do the same for templates? Something like this:
>
> void foo(A, B, C)(A a, B b, C c)
> constraint
> {
> isDynamicArray(a);
> isIterable(a);
> }
> body
> {
> ...
> }
>
> So maybe every statement would be checked for the return value, and
> you would get the exact line where a constraint failed when
> instantiating a template.
>
> Just a passing thought anyway..
>
More information about the Digitalmars-d
mailing list