[Issue 3175] rejects templated ref return function
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Wed Nov 18 10:30:45 PST 2009
http://d.puremagic.com/issues/show_bug.cgi?id=3175
Luther Tychonievich <lat7h at virginia.edu> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |lat7h at virginia.edu
Severity|normal |trivial
--- Comment #1 from Luther Tychonievich <lat7h at virginia.edu> 2009-11-18 10:30:44 PST ---
This is only a problem with template parameter deduction:
ref int foo(int x)(int[x] v) if (x>0) { return v[0]; }
foo!(2)([1,2]); // works
foo([1,2]); // gives "only parameters or foreach..." error message
It can be sidestepped by explicit template declaration:
template foo(int x) if (x>0) {
ref int foo(int[x] v) { return v[0]; }
}
foo([1,2]); // works
While obviously not as nice as function template syntax, this workaround is not
difficult to read or write and contains full functionality.
I posit the error message is wrong either way: declarations.c line 908 should
read:
error("only function return types, parameters, and foreach declarations can
be ref");
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
More information about the Digitalmars-d-bugs
mailing list