digitalmars.D.learn - Regarding type deduction
- bearophile (18/18) Sep 17 2012 Do you think it's useful and possible to extend the D type
- Jesse Phillips (5/23) Sep 17 2012 I can't say I've ever thought to have such. But it seems it could
Do you think it's useful and possible to extend the D type inference (deduction) for templates to support something like this (I know there are different ways to do this in D)? struct Tree1 { static struct Node { int x; } } struct Tree2 { static struct Node { int x, y; } } void foo(T)(T.Node n1, T.Node n2) {} // *** void main() { Tree1.Node n1, n2; foo(n1, n2); } (I am asking this because nested types are becoming increasingly common in D code.) Bye, bearophile
Sep 17 2012
On Monday, 17 September 2012 at 14:54:48 UTC, bearophile wrote:Do you think it's useful and possible to extend the D type inference (deduction) for templates to support something like this (I know there are different ways to do this in D)? struct Tree1 { static struct Node { int x; } } struct Tree2 { static struct Node { int x, y; } } void foo(T)(T.Node n1, T.Node n2) {} // *** void main() { Tree1.Node n1, n2; foo(n1, n2); } (I am asking this because nested types are becoming increasingly common in D code.) Bye, bearophileI can't say I've ever thought to have such. But it seems it could simplify something. Though I'd think the syntax: Void foo(T: T.Node) (... Or more proper.
Sep 17 2012