digitalmars.D - Extending UFCS to work with templates.
- DigitalDesigns (18/18) Jun 09 2018 The idea is that one can use UFCS with templates and types if the
The idea is that one can use UFCS with templates and types if the first type matches: void foo(string T)(int x); "test".foo(4); <==> foo!("test")(4) class X; void foo(T : X)(int x); X.foo(4) <=> foo!X(4) This would be unambiguous(since types are not variables in D). This allows one to define generic functions on a whole class of types: T New(T, Args...)(Args a) { return new T(a); } which then is a useful idiom because it provides a nice wrapper for new. We could then use New in place of new in our design and then track allocations easier, convert seamlessly between gc and nogc allocated variables, etc.
Jun 09 2018