http://d.puremagic.com/issues/show_bug.cgi?id=10491
--- Comment #2 from Kenji Hara <[email protected]> 2013-06-28 21:13:50 PDT --- I don't like the enhancements of this kind. Because: 1. Default argument is not so often used. Then, reduction amount of the code is very limited. 2. It breaks consistency of C-style languages that all of function parameters in function signature have their own type explicitly. 3. It would introduce one more forward reference possibility. void foo(auto a = bar()) {} // inference auto bar() { alias T = ParameterTypeTuple!foo[0]; // requires foo's complete signature return T.init; } void main() { auto x = bar(); } Already, auto return, function attribute inference has same possibility. They sometimes produces legitimate (but difficult to understand) forward reference errors. 4. `auto ref` / `in ref` is still debatable. This enhancement might have interference with it. ---- Side note: Today, issue 7152 is implemented. By that, void foo(in VeryLongNamedStruct x = VeryLongNamedStruct(1)) {} might be shorten to: void foo(in VeryLongNamedStruct x = 1) {} -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
