On 11/29/2011 04:20 AM, Jesse Phillips wrote:
On Sun, 27 Nov 2011 12:54:48 +0100, Timon Gehr wrote:

That is an overly restrictive interface because the element type is
fixed.

The interface should be usable like this:
void foo(R : Range)(R input) { /* ... * / }

void foo(T, R : Range!T)(R input) {} // ?

Templates are turing complete. This kind of matching is undecideable, and there exist cases where it is even ambiguous:

enum interface X(T){ } // what will T be deduced as?

Reply via email to